萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> 解決服務器連接錯誤Host ‘XXX’ is not allowed to connect to this MySQL server

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

解決服務器連接錯誤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)首先以 root 帳戶登陸 MySQL

在 Windows 主機中點擊開始菜單,運行,輸入“cmd”,進入控制台,進入MySQL 的 bin 目錄下,然後輸入下面的命令。

MySQL –u root –p 123456

123456 為 root 用戶的密碼。

在 Linux 主機中在命令提示行下輸入下面的命令。(怎麼登陸到linux vps的mysql呢?)

輸入:/usr/local/mysql/bin/mysql -u root –p

然後再輸入密碼即可進入。

2)創建遠程登陸用戶並授權


mysql> grant all PRIVILEGES on shujukuming.* to 'yonghuming'@'192.168.1.1' identified by '123456' WITH GRANT OPTION;

上面的語句表示將數據庫shujukuming的所有權限授權給yonghuming這個用戶,允許yonghuming 用戶在192.168.1.1 這個 IP 進行遠程登陸,並設置yonghuming 用戶的密碼為 123456 。

逐一分析所有的參數:

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

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

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

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

123456 為用戶的密碼。

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

Query OK, 0 rows affected (0.01 sec)
如果沒有上面的語句那麼請執行下面的命令,即可立即生效。

Mysql> flush privileges

copyright © 萬盛學電腦網 all rights reserved