1. 程式人生 > >MySQL創建用戶,常用SQL語句以及數據庫備份與恢復

MySQL創建用戶,常用SQL語句以及數據庫備份與恢復

mysql常用命令 恢復與備份

一、創建普通用戶並授權

1、創建用戶並授權

[root@zlinux ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> grant all on *.* to user01 identified by ‘123456‘
    -> ;                                                      //上一行命令忘記輸入‘;’,這裏可以輸入後繼續執行
Query OK, 0 rows affected (0.01 sec)

創建user用戶並授予其所有權限*.*(第一個*表示所有數據庫,第二個*表示所有表)
這裏的user01特指localhost上的user01
identified by :設定密碼,用單引號括起來。

2、給網絡上其他機器某個用戶授權

mysql> grant all on *.* to ‘user02‘@‘127.0.0.1‘ identified by ‘123456‘;     //指定IP,即只可通過此IP登錄,用戶和主機之間有個@。可以使用通配符%,代表所有IP(一般不使用)
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye
[root@zlinux ~]# mysql -uuser02 -p123456               //未連接到指定IP,登錄報錯
Warning: Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user ‘user02‘@‘localhost‘ (using password: YES)
[root@zlinux ~]# mysql -uuser02 -p123456 -h127.0.0.1     //指定IP,無誤
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.6.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> 

3、查看用戶授權

mysql> show grants          //查看當前用戶授權
    -> ;
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost                                                                                                              |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘localhost‘ IDENTIFIED BY PASSWORD ‘*A89494294B2411291D21451D05BAB332A65AAB5D‘ WITH GRANT OPTION |
| GRANT PROXY ON ‘‘@‘‘ TO ‘root‘@‘localhost‘ WITH GRANT OPTION                                                                           |
+----------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> show grants for ‘user02‘@‘127.0.0.1‘;      //查看指定用戶授權
+------------------------------------------------------------------------------------------------------------------------+
| Grants for [email protected]                                                                                            |
+------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO ‘user02‘@‘127.0.0.1‘ IDENTIFIED BY PASSWORD ‘*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9‘ |
+------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

4、授權部分權限(如讀、寫、查詢、插入等)

mysql> grant SELECT, INSERT, UPDATE *.* user03 identified by ‘123456‘;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘*.* user03 identified by ‘123456‘‘ at line 1
mysql> grant SELECT, INSERT, UPDATE on *.* to user03 identified by ‘123456‘;
Query OK, 0 rows affected (0.00 sec)

mysql> show grants for user03
    -> ;
+------------------------------------------------------------------------------------------------------------------------+
| Grants for user03@%                                                                                                    |
+------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE ON *.* TO ‘user03‘@‘%‘ IDENTIFIED BY PASSWORD ‘*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9‘ |
+------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

二、常用SQL語句

select count(*) from mysql.user;         //查詢mysql庫中user表的行數
select * from mysql.db;                       //查詢mysql庫中db表的所有內容
select db from mysql.db;                    //查詢mysql庫中db表的db字段
select db,user from mysql.db;            查詢mysql庫中db表的db和user字段
select * from mysql.db where host like ‘192.168.%‘;                 //查詢mysql庫中db表中匹配192.128.開頭的內容
insert into db1.t1 values (1, ‘abc‘);                              //在db1數據庫的t1表中插入對應 內容
update db1.t1 set name=‘aaa‘ where id=1;                  //更改db1數據庫的t1表中name列內容,當id是1的時候
truncate table db1.t1;           //清除表內數據
drop table db1.t1;                 //刪除表
drop database db1;              //刪除數據庫

三、MySQL數據庫備份與恢復

mysql> create database db1;    //創建庫
Query OK, 1 row affected (0.01 sec)

mysql> use db1;     //切換庫
Database changed  
mysql> create table t1 (`id` int(4),`name` char(40));                   //創建表及字段
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| t1            |
+---------------+
1 row in set (0.00 sec)

mysql> select * from t1;
Empty set (0.00 sec)

mysql> quit
Bye
[root@zlinux ~]# mysqldump -uroot -pzlinux123456 mysql >/tmp/mysql.sql     //備份
Warning: Using a password on the command line interface can be insecure.
[root@zlinux ~]# ls /tmp/mysql.sql 
/tmp/mysql.sql
[root@zlinux ~]# mysql -uroot -pzlinux123456 db2 < /tmp/mysql.sql        //恢復
Warning: Using a password on the command line interface can be insecure.
[root@zlinux ~]# mysql -uroot -pzlinux123456
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 29
Server version: 5.6.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> use db2                  //切換到db2,查看是否恢復成功
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------------------+
| Tables_in_db2             |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| t1                        |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
29 rows in set (0.01 sec)

mysql> quit
Bye
[root@zlinux ~]# mysqldump -uroot -pzlinux123456 mysql user > /tmp/mysqluser.sql     //備份mysql庫user表
Warning: Using a password on the command line interface can be insecure.
[root@zlinux ~]# mysql -uroot -pzlinux123456 db1 < /tmp/mysqluser.sql      //恢復到db1
Warning: Using a password on the command line interface can be insecure.
[root@zlinux ~]# mysql -uroot -pzlinux123456
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 32
Server version: 5.6.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> use db1    //查看是否成功恢復
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| t1            |
| user          |
+---------------+
2 rows in set (0.00 sec)

mysql> 

MySQL創建用戶,常用SQL語句以及數據庫備份與恢復