原因分析:
Host 'Local' 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 目錄下,然後輸入下面的命令。
在Linux 主機中在命令提示列下輸入下面的命令。
複製代碼代碼如下:
> MySQL -uroot -p123456
123456 為root 使用者的密碼。
2)創建遠端登陸使用者並授權
複製代碼代碼如下:
> grant all PRIVILEGES on discuz.* to ted@'123.123.123.123' identified by '123456';
上面的語句表示將discuz 資料庫的所有權限授權給ted 這個用戶,允許ted 用戶在123.123.123.123 這個IP 進行遠端登陸,並設定ted 用戶的密碼為123456 。
以下逐一分析所有的參數:
all PRIVILEGES 表示賦予所有的權限給指定用戶,這裡也可以替換為賦予某一具體的權限,例如:select,insert,update,delete,create,drop 等,具體權限間用“,”半角逗號分隔。
discuz.* 表示上面的權限是針對於哪個表的,discuz 指的是資料庫,後面的* 表示對於所有的表,由此可以推理出:對於全部資料庫的全部表授權為“*.*”,對於某一資料庫的全部表授權為“資料庫名稱.*”,對於某一資料庫的某一表授權為“資料庫名稱.表名”。
ted 表示你要給哪個用戶授權,這個用戶可以是存在的用戶,也可以是不存在的用戶。
123.123.123.123 表示允許遠端連線的IP 位址,若想不限制連結的IP 則設定為「%」即可。
123456 為使用者的密碼。
執行了上面的語句後,再執行下面的語句,方可立即生效。
複製代碼代碼如下:
> flush privileges;