一个MySQL服务中能够跑多个库,不一样的用户能够给予不一样的受权,合理安全的使用MySQL。mysql
grant all on *.* to 'user1'@'127.0.0.1' identified by 'passwd';
grant all表明授予全部权限sql
*.*表明全部数据库的全部表数据库
to后是受权的用户安全
@后为容许登陆的来源IP,@后也能够写localhost,使用户直接经过本地sock登陆,还能够写%,表明容许全部IP访问MySQL架构
identified by 后是受权的用户的密码ide
mysql> grant all on *.* to 'user1'@'127.0.0.1' identified by 'passwd'; Query OK, 0 rows affected (0.00 sec)
注:grant命令不会记录在命令历史文件中,由于命令自己是不安全的。spa
show grants 能够查看当前用户的受权3d
注:查看受权时要指定相应用户以及用户的来源IP(用户在不一样的IP下的权限可能不一样)code
当用户在127.0.0.1上具备相关权限,现该用户须要在192.168.88.10上具备相同权限,则经过上述命令查看该用户受权后,将权限复制一遍,对应IP修改成新的IP地址便可blog
sql查询能够跨库跨表查询,库与表用“.”隔开。
select count(*) from mysql.user; //查询mysql库的user表的全部行数
select * from mysql.db; //查询mysql库的db表
注:不建议使用select带*的语句,该类语句会耗费大量的时间和资源。
select db from mysql.db; //查询mysql库的db表中的db字段
select db,user from mysql.db;
select * from mysql.db where host like '192.168.%'; //在mysql库db表中查询来源IP为192.168.x.x网段的全部内容
insert into db1.t1 values (1, '123'); //向db库的t1表中插入一条数据
注:插入的数据类型是字符串类型时,数据要加单引号。
update db1.t1 set name='aaa' where id=1; //将db1库的t1表中name字段中的数据改成aaa,针对id=1的行
truncate table db1.t1; drop table db1.t1;
truncate与drop命令的区别:前者只清除数据保留原有架构,后者可连同表一并删除。
drop database 数据库名称;
mysqldump -uroot -p123456 mysql > /tmp/mysql.sql //将mysql库中内容备份至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 -p123456 -A >/tmp/123.sql
mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql
注:mysqldump命令针对规模较小的数据库进行操做。