菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
376
0

centos LAMP第四部分mysql操作 忘记root密码 skip-innodb 配置慢查询日志 mysql常用操作 mysql常用操作 mysql备份与恢复 第二十二节课

原创
05/13 14:22
阅读数 26180

centos  LAMP第四部分mysql操作  忘记root密码  skip-innodb 配置慢查询日志 mysql常用操作  mysql常用操作 mysql备份与恢复   第二十二节课

 

 

mysql用的哪个my.cnf,如果都有就用后面的

查找顺序 /etc/mycnf ---> /etc/mysql/mycnf ---> $BASEDIR/my.cnf --->$DATADDIR/my.cnf ----> ~/ .my.cnf

 

 

1. 忘记root密码
编辑mysql主配置文件 my.cnf 在[mysqld]字段下添加参数 skip-grant

重启数据库服务,这样就可以进入数据库不用授权了  service mysqld restart

修改相应用户密码  mysql -uroot 

use mysql;

update user set password=password('your password') where user='root';

flush privileges;

最后修改/etc/my.cnf 去掉 skip-grant , 重启mysql服务

 

2. skip-innodb   我们可以增加这个参数不使用innodb引擎。

 

 

3. 配置慢查询日志
#log_slow_queries = /path/to/slow_queries
#long_query_time = 1

 

 

4. mysql常用操作
查看都有哪些库 show databases;
查看某个库的表 use db; show tables;
查看表的字段 desc tb;
查看建表语句 show create table tb;
当前是哪个用户 select user();
当前库 select database();
创建库 create database db1;
创建表 create table t1 (`id` int(4), `name` char(40));
查看数据库版本 select version();
查看mysql状态 show status;
修改mysql参数 show variables like 'max_connect%'; set global max_connect_errors = 1000;
查看mysql队列 show processlist; show full processlist
创建普通用户并授权 grant all on *.* to user1 identified by '123456';
grant all on db1.* to 'user2'@'10.0.2.100' identified by '111222';
grant all on db1.* to 'user3'@'%' identified by '231222';insert into tb1 (id,name) values(1,'aming');
更改密码,也可以用grant 修改密码 UPDATE mysql.user SET password=PASSWORD("newpwd") WHERE user='username' ;
查询 select count(*) from mysql.user; select * from mysql.db; select * from mysql.db where host like '10.0.%';
插入 update db1.t1 set name='aaa' where id=1;
清空表 truncate table db1.t1;
删除表 drop table db1.t1;
删除数据库 drop database db1;
修复表 repair table tb1 [use frm];

 

 

5. mysql备份与恢复
备份 mysqldump -uroot -p123456 db1 >1.sql
恢复 mysql -uroot -p123456 db1 <1.sql
只备份一个表 mysqldump -uroot -p123456 db1 tb1 > 2.sql
只备份表结构 mysqldump -uroot -p123456 -d db1 tb1 > 2.sql
只恢复一个表 跟恢复整个库一样 mysql -uroot -p123456 db1 <1.sql
备份时指定字符集 mysqldump -uroot -p123456 --default-character-set=utf8 db >1.sql
恢复也指定字符集 mysql -uroot -p123456 --default-character-set=utf8 db < 1.sql

 

 

 

 

 

 


mysql


-e 参数直接在shell里面执行sql语句

mysql -uroot -p123456  -e"use mysql;select * from user where user='root'\G;"

 

 


没有指定端口和ip的连接方式就是使用socket连接方式

mysql -uroot -p123456

 


查看socket文件位置

ps aux|grep mysql

 


指定socket文件位置三种方式
1、mysql -uroot -p123456 -S /var/lib/mysql/mysql.sock
2、my.cnf
3、编译的时候

 

使用TCP/IP登录mysql

mysql -uroot -p123456  -h127.0.0.1  -p3306

 

 

mysql命令行不支持tab键补全!!

 

mysql命令历史文件
位置:在root用户根目录有一个.mysql_history文件,退出mysql命令行才会记录命令历史

不记录mysql命令历史

cat /root/.mysql_history >/dev/null

 

 


为防止乱码,在创建表的时候要指定字符集或者在my.cnf里指定默认字符集,例如utf8

vi /etc/my.cnf //添加下面内容

[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8

 

 


赋予权限并建立用户
grant 所有权限 ALL ON 库名.表名 to 'user1'@'127.0.0.1' identified by '123456';

*.*所有的库和所有的表
只用%的话可以表示任意IP

grant all on *.* to user1 identified by '123456';

 

 

更改全局变量,重启mysql失效

set global table_open_cache=128;

 

 

备份数据库的时候指定字符集,防止乱码,安装zabbix的时候特别需要设置
--default-character-set=utf8
还原的时候也可以加上
--default-character-set=utf8


备份
锁表不让写

lock tables `pre_forum_post` write;

插入数据

insert into xx;

解锁

unlock tables;

 


表可以重新进数据

 

mysql命令行里面不区分大小写

f

发表评论

0/200
376 点赞
0 评论
收藏
为你推荐 换一批