【MySql】權限不足導致的無法連接到數據庫以及權限的授予和撤銷


【環境參數】

1、Host OS:Win7 64bit

2、Host IP:192.168.10.1

3、VM: VMware 11.1.0

4、Client OS:CentOS 6

5、Client IP:192.168.10.129

6、MySql版本: 5.1.73

 

 【障礙再現】

    Host is not allowed to connect to this MySql Server  

    當“初次”在CentOS系統上(安裝在虛擬機中)安裝並且簡單配置完MySql服務器之后,想要在本地訪問虛擬機上的MySql數據庫,當在本地輸入mysql登陸命令后,出現如下圖所示錯誤。

簡而言之,即Host(192.168.10.1)不允許連接MySql數據庫。

  

 

【障礙原因】

    Host端的權限不足。
    在MySql數據庫服務器端的mysql數據庫中,有一個user表,該表中就記錄了可以登錄MySql服務器的帳號相關信息,如下圖所示。
  

    此時,user表中的host字段僅僅有“localhost”這一條記錄,則說明了MySql服務器僅僅允許從“localhost(此處的localhost指的是虛擬機)”登錄到數據庫。

    因此,若想允許其他非localhost的用戶訪問,就要修改host字段的數值。
 
 
【解決方案01:改表法】
    將user表中host字段中的數據修改為“%”
  
 
  注意,修改完之后,要記得“ 刷新權限”,否則,Host端依然無法連接到MySql上。 
  
 
【解決方案02授權法】
 
以下幾個示例可以作為有價值的參考:(自己經過測試,可以起效)
(1) 如果想要讓數據庫用戶myDbUser01,使用密碼myPassword,從" 任何主機"連接到mysql服務器的話,可以使用如下命令:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myDbUser01'@ '%' IDENTIFIED BY 'myPassword' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
 
(2) 如果想要讓數據庫用戶myDbUser01,使用密碼myPassword,從" ip為192.168.10.1的主機"連接到mysql服務器,可以使用如下命令:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myDbUser01'@ '192.168.10.1' IDENTIFIED BY 'myPassword' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
 
(3) 如果想要讓數據庫用戶myDbUser01,使用密碼myPassword,從ip為192.168.10.1的主機連接到mysql服務器的" dk數據庫",可以使用如下命令:
mysql> GRANT ALL PRIVILEGES ON  dk.* TO 'myDbUser01'@'192.168.10.1' IDENTIFIED BY 'myPassword' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
 
 
【拓展:撤銷用戶權限】
命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';
說明: privilege, databasename, tablename - 同授權部分.
例子: REVOKE SELECT ON *.* FROM 'pig'@'%';
注意: 
  REVOKE語句只能取消用戶的權限,而不可以刪除用戶。即使取消了所有的權限,用戶仍然可以連接到服務器。
要想徹底的刪除用戶,必須使用DELETE語句將該用戶的記錄從MySQL數據庫中的user表中刪除。該語句的語法格式如下:
Delete from user where user = "user_name" and host = "host_name" ;
使用DELETE刪除用戶sss,代碼如下: 
mysql> use mysql
Database changed
mysql> delete from user where user='sss' and host='localhost' ;
mysql>flush privileges ;
Query OK, 1 row affected (0.02 sec)   
其中,delete用於刪除用戶,flush告訴服務器重新加載授權表。

 

讀者如要轉載,請標明出處和作者名,謝謝。

地址01:http://space.itpub.net/25851087

地址02:http://www.cnblogs.com/zjrodger

作者名:zjrodger 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM