1、mysql用户管理
grant语句不会记录到命令历史中
grant all on *.* to 'user1' identified by 'passwd'; //第一个*表示库,第二个*表示表,*.*表示所有的库和表
grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.133.1' identified by 'passwd'; //其中的IP地址是来源IP,只允许在此主机登录,如果需要在本机通过socket连接,则需要将IP地址修改为'user2'@'localhost',其中SELECT,UPDATE,INSERT是指可以进行的操作,db1是指具体的表名
grant all on db1.* to 'user3'@'%' identified by 'passwd';对所有的IP地址授权
show grants; //显示当前用户权限
show grants for user2@192.168.133.1;
由上图可以看出user2有所有的权限
2、常用sql语句
select count(*) from mysql.user;查找mysql库下user表的行数
select * from mysql.db;查看db表中所有的内容,
select db from mysql.db;查找db字段
select db,user from mysql.db;查找db和user字段
select * from mysql.db where host like '192.168.%';模糊查询
insert into db1.t1 values (1, 'abc');向db1.t1中插入1和abc,由于abc为字符串,所以需要加单引号
update db1.t1 set name='aaa' where id=1;更新表中的数值,将id为1的name更改为aaa
truncate table db1.t1;清空表db1.t1,只会清空表中的数据,不会清空字段,而drop则是直接删除表
drop table db1.t1;删除表
drop database db1;删除数据库
3、数据库备份与恢复
备份库 mysqldump -uroot -p123456 mysql > /tmp/mysql.sql
恢复库 mysql -uroot -p123456 mysql < /tmp/mysql.sql,也可以恢复到其他库中
备份表 mysqldump -uroot -p123456 mysql user > /tmp/user.sql
恢复表 mysql -uroot -p123456 mysql < /tmp/user.sql,恢复表时,只需要写库的名字就可以,不需要写具体的表名
备份所有库 mysqldump -uroot -p -A >/tmp/123.sql,其中-A表示all
只备份表结构 mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql,只备份表的结构,不备份表中的数据