解決服務器連接錯誤Host ‘XXX’ is not allowed to connect to this MySQL server


這段時間在研究火車頭的入庫教程,在“配置登陸信息和數據庫(mysql)”連接中,出現“服務器連接錯誤Host 'XXX' is not allowed to connect to this MySQL server”的錯誤。像這種錯誤,就是典型的遠程權限問題。

問題症結是MySQL 沒有開放遠程登錄的權限。這時要看你的服務器到底用的那種系統,linux或者是Windows,這個解決辦法不同。解決的辦法就是開啟 MySQL 的遠程登陸帳號。

有兩大步:

1、確定服務器上的防火牆沒有阻止 3306 端口。

MySQL 默認的端口是 3306 ,需要確定防火牆沒有阻止 3306 端口,否則遠程是無法通過 3306 端口連接到 MySQL 的。

如果您在安裝 MySQL 時指定了其他端口,請在防火牆中開啟您指定的 MySQL 使用的端口號。

如果不知道怎樣設置您的服務器上的防火牆,請向您的服務器管理員咨詢。

2、增加允許遠程連接 MySQL 用戶並授權。

1)登陸mysql

2)創建遠程登陸用戶並授權,在要鏈接的服務器上操作

mysql> grant all PRIVILEGES on db_name.* to 'username'@'xxx.xxx.xx.x' identified by 'password' WITH GRANT OPTION;

上面的語句表示將數據庫 db_name 的所有權限授權給 username 這個用戶,允許 username 用戶在 xxx.xxx.xx.x 這個 IP 進行遠程登陸,並設置 username 用戶的密碼為 password。

分析參數:

all PRIVILEGES 表示賦予所有的權限給指定用戶,這里也可以替換為賦予某一具體的權限,例如:select,insert,update,delete,create,drop 等,具體權限間用“,”半角逗號分隔。

db_name.* 表示上面的權限是針對於哪個表的,db_name指的是數據庫名稱,后面的 * 表示對於所有的表,由此可以推理出:對於全部數據庫的全部表授權為“*.*”,對於某一數據庫的全部表授權為“數據庫名.*”,對於某一數據庫的某一表授權為“數據庫名.表名”。

username表示你要給哪個用戶授權,這個用戶可以是存在的用戶,也可以是不存在的用戶。

xxx.xxx.xx.x 表示允許遠程連接的 IP 地址,你的IP,如果想不限制鏈接的 IP 則設置為“%”即可。

password 為用戶username的密碼。

最后執行了上面的語句后,一般都會立即生效,返回值如下:

Query OK, 0 rows affected (0.01 sec)


如果沒有上面的語句那么請執行下面的命令,即可立即生效。

Mysql> flush privileges


免責聲明!

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



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