1. mysql用户管理

mysql默认有一个root超级管理员账户,实际工作环境中不可能每个人都用此root权限,防止误操作、误删除,可以给单独的用户进行授权。

Mysql创建用户以及授权:

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

其中,all表示所有权限(如读、写、查询、删除等操作); .有两个*,前者表示所有数据库,后者表示所有的表;identified by后面跟密码,用单引号括起来。这里的user1指localhost上的user1。如果是给网络其他机器上的某个用户授权,则需要执行如下命令:

grant all on db1.* to 'user2'@'172.20.4.171' identified by '123456';

其中,用户和主机的ip之间有个符号@,另外,命令中主机ip可以用%替代,表示所有主机,如下命令:

grant all on db1.* to 'user3'@'%' identified by '123456';

可以根据具体的权限授权:

grant SELECT,UPDATE,INSERT on db1.* to 'user4'@'127.0.0.1' identified by '123456';

主机ip 127.0.0.1表示只能在mysql服务器上使用该用户。

mysql 给账号设置超级管理员权限 mysql的默认超级管理员名称_mysql

• show grants;

• show grants for user2@192.168.133.1;

mysql 给账号设置超级管理员权限 mysql的默认超级管理员名称_python_02

show grants;命令平时用的不多,当给用户新增授权时可以直接复制里面的显示,然后更改来源ip,密码并不影响。

扩展:

撤销已经赋予给 MySQL 用户权限的权限。

revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:

revoke  all on *.* from 'root'@'192.168.0.197' ;

REVOKE语句只能取消用户的权限,而不可以删除用户。即使取消了所有的权限,用户仍然可以连接到服务器。要想彻底的删除用户,必须使用DELETE语句将该用户的记录从MySQL数据库中的user表中删除。该语句的语法格式如下: 

Delete from user where user = "user_name" and host = "host_name" ; 

例子:

use mysql;

delete from user where user='sss' and host='localhost' ;

flush privileges ;

最后再次查看一下授权用户,发现消失了

select user,host from mysql.user; //查看mysql用户和host

mysql 给账号设置超级管理员权限 mysql的默认超级管理员名称_mysql 给账号设置超级管理员权限_03



2. 常用sql语句

查询语句:

1. select count(*) from mysql.user;

其中,mysql.user表示MySQL库中的user表,count(*)表示表中共有多少行。

mysql 给账号设置超级管理员权限 mysql的默认超级管理员名称_数据库_04

2. select * from mysql.db;

它表示查询mysql库的db表中的所有数据。当然也可以查询单个字段或者多个字段,如下所示

select db from mysql.db;

select db,user from mysql.db;

同样查询的语句中也可以使用万能匹配符%,如下所示:

select * from mysql.db where host like '192.168.%';

mysql 给账号设置超级管理员权限 mysql的默认超级管理员名称_数据库_05

插入一行:

插入操作在mysql中也很普遍,如下所示:

insert into db1.t1 values (1, 'abc');

select * from db1.t1;

mysql 给账号设置超级管理员权限 mysql的默认超级管理员名称_mysql_06

更改表的某一行:

mysql表里存放的数据支持更改某个字段,如下所示:

update db1.t1 set name='aaa' where id=1;

mysql 给账号设置超级管理员权限 mysql的默认超级管理员名称_数据库_07

清空某个表的数据:

有时我们不希望删除表,而只是想清空某个表的数据,如下所示:

truncate table db1.t1;

清空表内容,表结构还在

mysql 给账号设置超级管理员权限 mysql的默认超级管理员名称_数据库_08

删除表:

drop table db1.t1;

mysql 给账号设置超级管理员权限 mysql的默认超级管理员名称_python_09

删除数据库:

• drop database db1;

mysql 给账号设置超级管理员权限 mysql的默认超级管理员名称_python_10



3. mysql数据备份恢复

备份库:

备份mysql要使用mysqldump命令,具体用法如下:

mysqldump -uroot -p123456 mysql > /tmp/mysql.sql

其中,-u和-p两个选项的使用方法和前面介绍的一样;后面的mysql指的是库名,然后重定向到一个文本文档里。备份做完后,你可以查看/tmp/mysql.sql这个文件的内容。

恢复库:

mysql -uroot -p123456 mysql < /tmp/mysql.sql

可以恢复到新建的库中测试,看看表以及表里的内容是否一致

备份表:

mysqldump -uroot -p123456 mysql user > /tmp/user.sql

less /tmp/user.sql 查看备份的文件发现恢复时会先查看是否有这个表,如果有则删除重新创建表,然后在insert数据

恢复表:

mysql -uroot -p123456 mysql < /tmp/user.sql

备份所有库:

mysqldump -uroot -p123456 -A >/tmp/123.sql

-A选项备份所有的库

备份文件中搜索Current Database:可以看到有哪些库

只备份表结构:

mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql