解决服务器连接错误Host ‘XXX’ is not allowed to connect to this MySQL server
本文轉(zhuǎn)載于http://www.cnblogs.com/jesu/p/5650699.html,向原作者表示感謝,如有侵權(quán),請聯(lián)系我。
這段時間在研究火車頭的入庫教程,在“配置登陸信息和數(shù)據(jù)庫(mysql)”連接中,出現(xiàn)“服務(wù)器連接錯誤Host 'XXX' is not allowed to connect to this MySQL server”的錯誤。像這種錯誤,就是典型的遠程權(quán)限問題。
問題癥結(jié)是MySQL 沒有開放遠程登錄的權(quán)限。這時要看你的服務(wù)器到底用的那種系統(tǒng),linux或者是Windows,這個解決辦法不同。解決的辦法就是開啟 MySQL 的遠程登陸帳號。
有兩大步:
1、確定服務(wù)器上的防火墻沒有阻止 3306 端口。
MySQL 默認的端口是 3306 ,需要確定防火墻沒有阻止 3306 端口,否則遠程是無法通過 3306 端口連接到 MySQL 的。
如果您在安裝 MySQL 時指定了其他端口,請在防火墻中開啟您指定的 MySQL 使用的端口號。
如果不知道怎樣設(shè)置您的服務(wù)器上的防火墻,請向您的服務(wù)器管理員咨詢。
2、增加允許遠程連接 MySQL 用戶并授權(quán)。
1)登陸mysql
2)創(chuàng)建遠程登陸用戶并授權(quán),在要鏈接的服務(wù)器上操作
mysql> grant all PRIVILEGES on db_name.* to 'username'@'xxx.xxx.xx.x' identified by 'password' WITH GRANT OPTION;
上面的語句表示將數(shù)據(jù)庫 db_name?的所有權(quán)限授權(quán)給?username?這個用戶,允許?username?用戶在?xxx.xxx.xx.x 這個 IP 進行遠程登陸,并設(shè)置?username?用戶的密碼為 password。
分析參數(shù):
all PRIVILEGES 表示賦予所有的權(quán)限給指定用戶,這里也可以替換為賦予某一具體的權(quán)限,例如:select,insert,update,delete,create,drop 等,具體權(quán)限間用“,”半角逗號分隔。
db_name.* 表示上面的權(quán)限是針對于哪個表的,db_name指的是數(shù)據(jù)庫名稱,后面的 * 表示對于所有的表,由此可以推理出:對于全部數(shù)據(jù)庫的全部表授權(quán)為“*.*”,對于某一數(shù)據(jù)庫的全部表授權(quán)為“數(shù)據(jù)庫名.*”,對于某一數(shù)據(jù)庫的某一表授權(quán)為“數(shù)據(jù)庫名.表名”。
username表示你要給哪個用戶授權(quán),這個用戶可以是存在的用戶,也可以是不存在的用戶。
xxx.xxx.xx.x?表示允許遠程連接的 IP 地址,你的IP,如果想不限制鏈接的 IP 則設(shè)置為“%”即可。
password?為用戶username的密碼。
最后執(zhí)行了上面的語句后,一般都會立即生效,返回值如下:
Query OK, 0 rows affected (0.01 sec)
如果沒有上面的語句那么請執(zhí)行下面的命令,即可立即生效。
Mysql> flush privileges
總結(jié)
以上是生活随笔為你收集整理的解决服务器连接错误Host ‘XXX’ is not allowed to connect to this MySQL server的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: anaconda2-keras安装;ke
- 下一篇: 使用 SQL Server Manage