grant all on . to 'user1'@'127.0.0.1' identifi..."/>
溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

mysql用戶管理、常用語(yǔ)句、數(shù)據(jù)分備份恢復(fù)

發(fā)布時(shí)間:2020-07-21 11:25:45 來(lái)源:網(wǎng)絡(luò) 閱讀:548 作者:qq5a04223be04df 欄目:MySQL數(shù)據(jù)庫(kù)

mysql用戶管理

創(chuàng)建用戶并授權(quán)

  • 指定登錄ip

    使用root用戶登錄錄創(chuàng)建授權(quán)新用戶:
    mysql> grant all on . to 'user1'@'127.0.0.1' identified by '123456';
    // all 所有操作(增刪查改)
    // 第一個(gè) 通配所有庫(kù)名,第二個(gè)通配所有表名
    // user1 為用戶名
    // 127.0.0.1 指定登錄ip,可用通配符%表示所有ip。
    // ‘123456’ 為user1用戶的登錄密碼
    Query OK, 0 rows affected (0.00 sec)

    使用user1用戶登錄,驗(yàn)證:
    [root@localhost ~]# mysql -uuser1 -p
    Enter password: 
    ERROR 1045 (28000): Access denied for user 'user1'@'localhost' (using password: YES)
    // 登錄失敗,因?yàn)閙ysql默認(rèn)使用socket登錄。需要指定地址。
    [root@localhost ~]# mysql -uuser1 -h227.0.0.1 -p
    Enter password: 
    Welcome to the MySQL monitor. Commands end with ; or \g.
    .....
    mysql> 
    // 登錄成功。其中g(shù)rant語(yǔ)句是不會(huì)記錄到命令歷史中的。

  • 指定登錄socket

    使用root用戶重新對(duì)user1用戶授權(quán):
    mysql> grant all on . to 'user1'@'localhost' identified by '123456';

    退出root用戶,使用user1 用戶登錄:
    [root@localhost ~]# mysql -uuser1 -p
    Enter password: 
    Welcome to the MySQL monitor. Commands end with ; or \g.
    .....
    mysql> 
    // 因?yàn)橹付ǖ卿浿鳈C(jī)為localhost,所以該用戶默認(rèn)使用(監(jiān)聽)本地mysql.socket文件,不需要指定IP即可登錄。

針對(duì)具體的權(quán)限授權(quán)

使用root用戶登錄:
mysql> grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.159.132' identified by '123456';// 創(chuàng)建user2用戶,并授權(quán)其針對(duì)db1庫(kù)中的所有表有SELECT,UPDATE,INSERT 權(quán)限。// user2用戶僅能通過(guò)ip 192.168.159.132 登錄。Query OK, 0 rows affected (0.00 sec)

查看用戶授權(quán)信息:

mysql> show grants;// 查看當(dāng)前用戶的授權(quán)信息mysql> show grants for user1@127.0.0.1;// 查看指定用戶的授權(quán)信息

更改授權(quán)

使用情況:user2用戶不僅需要在192.168.159.132上登錄,還需要在192.168.159.133上登錄,這時(shí)候就需要把授權(quán)的命令全部在執(zhí)行一遍

查看user2具有哪些權(quán)限:
mysql> show grants for user2@'192.168.159.132';
+--------------------------------------------------------------------------------------------------------------------+
| Grants for user2@192.168.159.132                                                                                   |
+--------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user2'@'192.168.159.132' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT SELECT, INSERT, UPDATE ON `db1`.* TO 'user2'@'192.168.159.132'       +--------------------------------------------------------------------------------------------------------------------+2 rows in set (0.00 sec)

執(zhí)行user2的授權(quán)命令:// 將ip改成192.168.159.133mysql>GRANT USAGE ON *.* TO 'user2'@'192.168.159.132' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'mysql> GRANT SELECT, INSERT, UPDATE ON `db1`.* TO 'user2'@'192.168.159.132';

查看user2@192.168.159.133的授權(quán):
mysql> show grants for user2@'192.168.159.133';
+--------------------------------------------------------------------------------------------------------------------+
| Grants for user2@192.168.159.133                                                                                   |
+--------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user2'@'192.168.159.133' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT SELECT, INSERT, UPDATE ON `db1`.* TO 'user2'@'192.168.159.133'       +--------------------------------------------------------------------------------------------------------------------+2 rows in set (0.00 sec)// 授權(quán)成功后,user3用戶就可以在192.168.159.133對(duì)db1進(jìn)行操作。(如不能遠(yuǎn)程鏈接,檢查以下防火墻規(guī)則。)// user2在兩個(gè)ip上登錄使用的是用一個(gè)密碼。// 重新授權(quán)時(shí),權(quán)限行的內(nèi)容和操作的庫(kù)表能修改。

常用sql語(yǔ)句

先用mysql用戶登錄mysql

mysql> use db1; //切換到db1庫(kù)Database changed

mysql> show tables; //查看當(dāng)前庫(kù)中有哪些表。+---------------+
| Tables_in_db1 |
+---------------+
| t1            |
+---------------+1 row in set (0.00 sec)

mysql> select count(*) from mysql.user;// 查看mysql庫(kù)中的user表有幾行+----------+
| count(*) |
+----------+
|       15 |
+----------+1 row in set (0.00 sec)

mysql> select * from mysql.db \G;// 查看mysql庫(kù)的db表中的所有內(nèi)容// * 表示所有內(nèi)容,\G是為了讓輸出內(nèi)容整齊*************************** 1. row ***************************
                 Host: %
                   Db: test
                 User: 
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          Delete_priv: Y
          Create_priv: Y
            Drop_priv: Y
           Grant_priv: N
      References_priv: Y
           Index_priv: Y
           Alter_priv: Y
Create_tmp_table_priv: Y
     Lock_tables_priv: Y
     Create_view_priv: Y
       Show_view_priv: Y
  Create_routine_priv: Y
   Alter_routine_priv: N
         Execute_priv: N
           Event_priv: Y
         Trigger_priv: Y

......// 這種操作平時(shí)盡量不要用,內(nèi)容多的情況下select*會(huì)比較占資源。mysql> select db from mysql.db;// 查看db這個(gè)字段,在mysql庫(kù)的db表中+---------+
| db      |
+---------+
| test    |
| test\_% |
| db1     |
| db1     |
| db1     |
| db1     |
| db1     |
| db1     |
+---------+8 rows in set (0.00 sec)

mysql> select db,user from mysql.db;// 查看db和user字段,在mysql庫(kù)的db表中// 需要查看的字段之間用逗號(hào)隔開+---------+-------+
| db      | user  |
+---------+-------+
| test    |       |
| test\_% |       |
| db1     | user2 |
| db1     | user3 |
| db1     | user4 |
| db1     | user2 |
| db1     | user3 |
| db1     | user2 |
+---------+-------+8 rows in set (0.00 sec)

mysql> select * from mysql.db where host like '192.168.%'\G; 
// 查看所有IP匹配192.168.%的內(nèi)容,從mysql庫(kù)的db表中// like  匹配,*************************** 1. row ***************************
                 Host: 192.168.159.131
                   Db: db1
                 User: user2
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          Delete_priv: N
          Create_priv: N
            Drop_priv: N
           Grant_priv: N
      References_priv: N
           Index_priv: N
           Alter_priv: N
Create_tmp_table_priv: N
     Lock_tables_priv: N
     Create_view_priv: N
       Show_view_priv: N
  Create_routine_priv: N
   Alter_routine_priv: N
         Execute_priv: N
           Event_priv: N
         Trigger_priv: N
......

mysql> create table t1(`id` int(4),`name` char(40));// 在db1庫(kù)下創(chuàng)建表ti// 有id和name兩個(gè)字段Query OK, 0 rows affected (0.39 sec)

mysql> insert into db1.t1 values(1,'abc');// 向t1表中添加一行數(shù)據(jù)Query OK, 1 row affected (0.00 sec)

mysql> select * from db1.t1;// 查看t1表中的內(nèi)容+------+------+
| id   | name |
+------+------+
|    1 | abc  |
+------+------+1 row in set (0.00 sec)// 添加數(shù)據(jù)時(shí),字符串盡量加單引號(hào)。mysql> update db1.t1 set name='aaa' where id=1;// 更新表中id為1的那一行name 的內(nèi)容。Query OK, 1 row affected (0.00 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;// 刪除表中id為1那一行的內(nèi)容Query OK, 1 row affected (0.00 sec)

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

mysql> truncate db1.t1; 
// 清空表中的內(nèi)容,表結(jié)構(gòu)還在Query OK, 0 rows affected (0.09 sec)

mysql> drop table t1;// 刪除表,整個(gè)表都刪除,包括內(nèi)容和表結(jié)構(gòu)Query OK, 0 rows affected (0.04 sec)

mysql> drop database db1;// 刪除庫(kù),整個(gè)庫(kù)都刪除,包括表Query OK, 0 rows affected (0.13 sec)// 平時(shí)盡量少用truncate和drop。mysql> use mysql;
mysql> delete from user where User='user1' and Host='127.0.0.1';// 刪除用戶,在刪除用戶前需先指定用戶表Query OK, 1 row affected (0.06 sec)

mysql數(shù)據(jù)庫(kù)備份恢復(fù)

  • 備份恢復(fù)庫(kù)

    [root@localhost ~]# mysqldump -uroot -p123456 mysql >/tmp/mysqlbak.sql
    // 備份指定庫(kù)(mysql庫(kù))到/tmp/mysqlbak.sql文件中

    [root@localhost ~]# mysqldump -uroot -p123456 -A >/rmp/mysqlbak_all.sql
    // 備份所有庫(kù)到/tmp/mysqbak_all.sql 文件中

    [root@localhost ~]# mysql -uroot -p123456 mysql< /tmp/mysqlbak.sq
    // 恢復(fù)到mysql庫(kù)中。也可以恢復(fù)到新的庫(kù)中(需新建庫(kù))

  • 備份恢復(fù)表

    [root@localhost ~]#mysql -uroot -p123456 mysql user > /tmp/user.sql
    // 備份指定表。在庫(kù)名后空格跟表名就行

    [root@localhost ~]#mysqldump -uroot -p123456 -d mysql > /tmp/mysql_tb.sql
    // 只備份表結(jié)構(gòu)

    [root@localhost ~]#mysql -uroot -p123456 mysql < /tmp/user.sql
    // 恢復(fù)的時(shí)候不需要加表名

    // 數(shù)據(jù)量小用mysqldump備份還可以,備份量大不適用。


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI