遠程連接mysql數據庫時出現如下提示信息:“MYSQL CONNECT ERROR – 1130:Host ’202.43.**.**’ is not allowed to connect to this MySQL server”
原來在創建mysql賬戶是,限制連接賬戶遠程登錄。也就是說,除了當前mysql所在的安裝服務器外,其他的ip(主機)都是不允許訪問的,盡管你的用戶名和密碼是正確的。
知道了問題的原因,下面就來解決問題。
首先需要登錄到mysql的安裝主機,然後進入mysql:
mysql/usr/local/mysql/bin mysql -u root -p
回車
root是mysql的最高授權用戶名,這時會提示你輸入密碼,正確輸入密碼後回車,進入mysql。
然後輸入如下命令:
grant all on 數據庫名.* to ‘數據庫賬戶名’@'%’ identified by ‘密碼’ with grant option;
回車
flush privileges;
回車
注意:上面的單引號不能省,數據庫名.* 表示要開放的數據庫下所有表,如果該連接的所有數據庫都要開放,可以用 *.* 代替。
‘數據庫賬戶名’@'%’ 這裡表示要開放的賬戶,百分號表示在任何主機都允許訪問。
如果以上兩步均顯示 “Query OK, 0 rows affected (0.00 sec)”,那麼說明命令已經成功執行,現在就可以遠程連接你的mysql數據庫了。
另外,也有可能是你的mysql安裝時默認綁定了固定的ip地址: bind-address : 127.0.0.1。具體操作是:到 /etc/mysql/my.cnf (注:這裡是linux系統)文件中,找到 bind-address 這一行,將它注釋掉,並重啟mysql,就可以遠程訪問了。
補充:利用工具來改表
1。改表法。
請使用mysql管理工具,如:SQLyog Enterprise
可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那台電腦使用mysql管理工具登入mysql後,更改 "mysql" 數據庫裡的 "user" 表裡的 "host" 項,從"localhost"改稱"%"
2. 授權法。
A:你想mysql賬戶myuser使用密碼mypassword從任何主機連接到mysql服務器的話,那就在mySQL命令行下輸入:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
若上面那條命令還沒有奏效,那就使用下面的命令,一定成功!
如果你想允許想mysql賬戶myuser從ip為192.168.1.3的主機連接到mysql服務器,並使用mypassword作為密碼,那就在mySQL命令行下輸入:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果改表加權限不行我們可嘗試下面的方法
編輯my.ini
在[mysqld]節點下新增或修改如下兩行行
skip-name-resolve #忽略主機名的方式訪問
lower_case_table_names=1 #忽略數據庫表名大小寫
修改後,重啟mysql即可。