1. mysql用户管理
因为日常使用中,需要给人员的权限进行限制,所以需要对用户进行管理。
1.1 创建用户并授权
- 指定登录IP
[root@host ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.
mysql> grant all on *.* to 'user1'@'127.0.0.1' identified by '123456';
#创建user1用户并授予其所有权限“*.*”(通配符)
#第一个*表示db_name;第二个*表示tb_name
#同时指定其来源IP127.0.0.1(即,只可通过此IP登录)
#此处可以使用通配符%,代表所有IP(一般不使用)
#设定密码:identified by
mysql> quit
Bye
- 指定登录socket
[root@host ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.
mysql> grant all on *.* to 'user2'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
1.2 用户登录
- 指定的IP用户登录
[root@host ~]# mysql -uuser1 -p123456 -h127.0.0.1
Welcome to the MySQL monitor.
mysql> quit
Bye
- 指定的socket登录
[root@host ~]# mysql -uuser2 -p'123456'
Welcome to the MySQL monitor.
mysql> exit
Bye
因为指定登录主机为localhost,所以该用户默认使用(监听)本地mysql.socket文件,不需要指定IP即可登录。
1.3 针对具体的权限进行授权
[root@host ~]# mysql -uroot -p'123456'
Welcome to the MySQL monitor.
mysql> create database db1;
Query OK, 1 row affected (0.04 sec)
mysql> grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'113.83.64.114' identified by '123456';
#创建user2用户,并授予其针对db1库SELECT,UPDATE,INSERT权限
mysql> grant all on db1.* to 'user'@'%' identified by '123456';
#创建user3,并针对所有IP授予其db1库所有权限
1.4 查看授权
[root@host ~]# mysql -uroot -p'123456'
Welcome to the MySQL monitor.
mysql> show grants;
#查看当前用户的权限
mysql> show grants for [email protected];
#查看指定用户的权限
1.5 更改权限
[root@host ~]# mysql -uroot -p'123456'
Welcome to the MySQL monitor.
mysql> GRANT USAGE ON *.* TO 'user2'@'127.0.0.1' IDENTIFIED BY PASSWORD '*6BB4837EB743291105EE4568DDA7DC67ED2CA2AD9';
Query OK, 0 rows affected (0.03 sec)
mysql> GRANT SELECT, INSERT, UPDATE ON `db1`.* TO 'user2'@'127.0.0.1';
Query OK, 0 rows affected (0.00 sec)
mysql> show grants for [email protected];
+--------------------------------------------------------------------------------------------------------------+
| Grants for [email protected] |
+--------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user2'@'127.0.0.1' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT SELECT, INSERT, UPDATE ON `db1`.* TO 'user2'@'127.0.0.1' |
+--------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql> quit
Bye
2. 常用sql语句
select count(*) from mysql.user; //查看指定库的内容的行数
select * from mysql.db\G; //查看库的所有内容
select db from mysql.db; //查看库指定内容
select db,user from mysql.db; //
select * from mysql.db where host like '192.168.%'\G; //查看某些IP对应的库内容,like表示匹配 (模糊查询)
insert into db1.t1 values (1, 'abc'); //在db1库t1表里插入内容(1,abc)
update db1.t1 set name='aaa' where id=1; //更新表格里所有id为1的表,把name内容更改为aaa
truncate table db1.t1; //清空一个表,留下表的格子
drop table db1.t1; //删除一个表
drop database db1; //删除一个库
3. mysql数据库备份恢复
备份库 mysqldump -uroot -p123456 db1> /tmp/db1.sql
恢复库 mysql -uroot -p123456 db1 < /tmp/db1.sql
备份表 mysqldump -uroot -p123456 db1 t1 > /tmp/user.sql
恢复表 mysql -uroot -p123456 db1 < /tmp/t1.sql
备份所有库 mysqldump -uroot -p -A >/tmp/123.sql
只备份表结构 mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql