本帖最后由 369666951 于 2016-2-25 17:39 编辑
1. 忘记root密码
编辑mysql主配置文件 my.cnf 在[mysqld]字段下添加参数 skip-grant-tables,
重启数据库服务,service mysqld restart 。这样就可以进入数据库不用授权了 mysql -uroot
使用update mysql.user set password=password('yourpassword') where user='root';
flush privileges;(MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令,记得分号结尾)
最后修改/etc/my.cnf 去掉 skip-grant , 重启mysql服务
2. 配置慢查询日志
log_slow_queries = /tmp/mysql.slow
long_query_time = 1
3.mysql常用操作
查看都有哪些库 show databases;
查看某个库的表 use db; show tables;
查看表的字段 desc tb;
查看建表语句 show create table tb;或者show create table tb\G;
当前是哪个用户 select user();查看所有用户select user,host from mysql.user;
当前库 select database();
创建库 create database db1;
创建表 create table tb1 (`id` int(4), `name` char(40)); 注意反引号
给表加数据 insert into tb1 (id,name) values(1,'aming');
或者插入多行 insert into tb1 (id,name) values (2,'wang'),(3,'yang'),(4,'ak47');
或者insert into tb1 (id) values (5);
修改update db1.tb1 set name='aaa' where id='1';(或者update db1.tb1 set name='aaa' where name='aming';)删除 delete from db1.tb1 where name='aming';
查看数据库版本 select version();
查看mysql状态 show status;
修改mysql参数 show variables like 'max_connect%'; set global max_connect_errors = 1000;
或者show variables like '%time%';
或者show variables like '%time';
查看mysql队列 show processlist; 类似与ps命令
创建普通用户并授权 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';
grant all on db1.* to 'user3'@'localhost' identified by '231222';
更改密码 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.%';
清空表 truncate table db1.t1; 做任何修改之前记得备份
删除表 drop table db1.t1;
删除数据库 drop database db1;
修复表 repair table tb1;
4.mysql备份与恢复
备份 mysqldump -uroot -p db >1.sql
恢复 mysql -uroot -p db <1.sql
只备份一个表 mysqldump -uroot -p db tb1 > 2.sql恢复表mysql -uroot -p db <2.sql
备份时指定字符集 mysqldump -uroot -p --default-character-set=utf8 db >1.sql
恢复也指定字符集 mysql -uroot -p --default-character-set=utf8 db < 1.sql
1. 忘记root密码
编辑mysql主配置文件 my.cnf 在[mysqld]字段下添加参数 skip-grant-tables,
重启数据库服务,service mysqld restart 。这样就可以进入数据库不用授权了 mysql -uroot
使用update mysql.user set password=password('yourpassword') where user='root';
flush privileges;(MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令,记得分号结尾)
最后修改/etc/my.cnf 去掉 skip-grant , 重启mysql服务
2. 配置慢查询日志
log_slow_queries = /tmp/mysql.slow
long_query_time = 1
3.mysql常用操作
查看都有哪些库 show databases;
查看某个库的表 use db; show tables;
查看表的字段 desc tb;
查看建表语句 show create table tb;或者show create table tb\G;
当前是哪个用户 select user();查看所有用户select user,host from mysql.user;
当前库 select database();
创建库 create database db1;
创建表 create table tb1 (`id` int(4), `name` char(40)); 注意反引号
给表加数据 insert into tb1 (id,name) values(1,'aming');
或者插入多行 insert into tb1 (id,name) values (2,'wang'),(3,'yang'),(4,'ak47');
或者insert into tb1 (id) values (5);
修改update db1.tb1 set name='aaa' where id='1';(或者update db1.tb1 set name='aaa' where name='aming';)删除 delete from db1.tb1 where name='aming';
查看数据库版本 select version();
查看mysql状态 show status;
修改mysql参数 show variables like 'max_connect%'; set global max_connect_errors = 1000;
或者show variables like '%time%';
或者show variables like '%time';
查看mysql队列 show processlist; 类似与ps命令
创建普通用户并授权 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';
grant all on db1.* to 'user3'@'localhost' identified by '231222';
更改密码 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.%';
清空表 truncate table db1.t1; 做任何修改之前记得备份
删除表 drop table db1.t1;
删除数据库 drop database db1;
修复表 repair table tb1;
4.mysql备份与恢复
备份 mysqldump -uroot -p db >1.sql
恢复 mysql -uroot -p db <1.sql
只备份一个表 mysqldump -uroot -p db tb1 > 2.sql恢复表mysql -uroot -p db <2.sql
备份时指定字符集 mysqldump -uroot -p --default-character-set=utf8 db >1.sql
恢复也指定字符集 mysql -uroot -p --default-character-set=utf8 db < 1.sql
编辑回复