13.4 mysql用户管理
创建用户并授权:
grant all on *.* to '用户名'@'ip' identified by '密码' //all是操作权限,*.*是库.表,指定格式是'用户名'@'localhost'才能用socket登录本地
grant SELECT,UPDATE,INSERT on db1.* to 'lgs'@'192.168.87.128' identified by '123456'; //能不加-h指定ip
查看所有授权:复制一个用户是否可用,可以先查看他的授权
show grant for '用户名'@'ip';
13.5 常用sql语句
统计指定表的数据行数:
select count(*) from mysql.user; //MyISAM引擎统计行很快,Innodb统计行耗时
查看db表的所有数据内容:少用*,耗资源
select * from mysql.db\G // 纵向显示
查看db表的db字段:
select db from mysql.db;
查看多个字段:
select db,user from mysql.db; //用逗号分隔
like模糊匹配:查找host字段为192.168.*.*的所有行数据
select * from mysql.db where host like '192.168.%'\G; // %匹配
插入表t1一行数据:
insert into db1.t1 values (1,'abc');
修改字段值 id=1对应的name字段:
update db1.t1 set name='aaa' where id=1;
删除数据行:id=2的行
delete from db1.t1 where id=2;
清空一个表的数据,表结构还在:
truncate db1.t1;
丢弃表:数据与表结构都删除
drop table db1.t1;
丢弃一个库:
drop database db1; //整个数据库都删除,包括结构与数据
13.6 mysql数据库备份恢复
小数据量的数据库使用
备份库到文件:
mysqldump -uroot -p123456 mysql1库名 >/tmp/bak.sql; //备份mysql1库的数据重定向到备份文件
恢复库:
mysql -uroot -p123456 mysql2库名 </tmp/bak.sql; //把备份库文件数据恢复(填充)到mysql2库中
备份表:
mysqldump -uroot -p123456 mysql.user >/tmp/user.sql; //备份mysql库的user表到备份文件
恢复表:
mysql -uroot -p123456 mysql </tmp/user.sql; //只用写库名mysql,可以不用写表名
备份所有库:
mysqldump -uroot -p123456 -A >/tmp/all.sql; //用-A选项
只备份表结构:
mysqldump -uroot -p123456 -d mysql库名 >/tmp/mysql.sql;