MySQL user management, common SQL statements, database backup

13.4 MySQL User Management

Create user and authorize

Specify the login IP

[root@1 ~]# 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

Specify the login socket

[root@1 ~]# 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

User login

Login with IP

[root@1 ~]# mysql -uuser1 -p123456 -h127.0.0.1
Welcome to the MySQL monitor.
mysql> quit
Bye

login using socket

[root@1 ~]# mysql -uuser2 -p'123456'
Welcome to the MySQL monitor. 
mysql> exit
Bye

Note:  Because the specified login host is localhost, the user uses (listens) the local mysql.socket file by default, and does not need to specify an IP to log in.

Authorize specific permissions

[root@1 ~]# 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'@'192.168.8.132' identified by '123456';
#创建user2用户,并授予其针对db1库SELECT,UPDATE,INSERT权限

mysql> grant all on db1.* to 'user'@'%' identified by '123456';
#创建user3,并针对所有IP授予其db1库所有权限

Permission related commands

[root@1 ~]# mysql -uroot -p'123456'
Welcome to the MySQL monitor.
mysql> show grants;
#查看当前用户的权限

mysql> show grants for [email protected];
#查看指定用户的权限

Change permissions

[root@1 ~]# 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

Note:  When changing user permissions, the content of the permission line must be changed.

13.5 Common SQL Statements

[root@1 ~]# mysql -uroot -p'123456';
Welcome to the MySQL monitor.
mysql> use db1;
Database changed
#选择库

mysql> select count(*) from mysql.user;
+----------+
| count(*) |
+----------+
|       12 |
+----------+
1 row in set (0.04 sec)
#查看指定库的内容的行数

mysql> select * from mysql.db\G;
#查看库的所有内容

mysql> select db,user from mysql.db;
#查看库指定内容

mysql> select * from mysql.db where host like '192.168.%'\G;
#查看某些IP对应的库内容,like表示匹配

mysql> create table t1(`id` int(4),`name` char(40));
Query OK, 0 rows affected (0.39 sec)
#在db1库下创建表t1

mysql> select * from db1.t1;
Empty set (0.03 sec)
#查看表中信息:空表

mysql> insert into db1.t1 values(1,'abc');
Query OK, 1 row affected (0.09 sec)
#向表中插入内容
mysql> select * from db1.t1;
+------+------+
| id   | name |
+------+------+
|    1 | abc  |
+------+------+
1 row in set (0.00 sec)

mysql> update db1.t1 set name='aaa' where id=1;
Query OK, 1 row affected (0.08 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from db1.t1;
+------+------+
| id   | name |
+------+------+
|    1 | aaa  |
+------+------+
1 row in set (0.00 sec)
#更改表中指定内容

mysql> delete from db1.t1 where id=1;
Query OK, 2 rows affected (0.10 sec)
#删除表中指定内容
mysql> select * from db1.t1;
Empty set (0.00 sec)

mysql> truncate db1.t1;
Query OK, 0 rows affected (0.09 sec)
#清空一个表中内容

mysql> drop table t1;
Query OK, 0 rows affected (0.04 sec)
#删除表
mysql> drop database db1;
Query OK, 0 rows affected (0.13 sec)
#删除库

mysql> use mysql;
mysql> delete from user where User='user1' and Host='127.0.0.1';
Query OK, 1 row affected (0.06 sec)
#删除用户,在删除用户前需要先指定表

13.6 MySQL database backup and recovery

Backup repository

备份指定库:
[root@1 ~]# mysqldump -uroot -p123456 mysql > /tmp/mysqlbak.sql

备份所有库:
[root@1 ~]# mysqldump -uroot -p123456 -A > /tmp/mysql_all.sql

recovery library

[root@1 ~]# mysql -uroot -p123456 < /tmp/mysqlbak.sql

backup table

备份指定表:
[root@1 ~]# mysql -uroot -p123456 mysql user > /tmp/user.sql

只备份表结构:
[root@1 ~]# mysqldump -uroot -p123456 -d mysql > /tmp/mysql_tb.sql

recovery table

[root@1 ~]# mysql -uroot -p123456 mysql user < /tmp/user.sql

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325853020&siteId=291194637