通過非本機訪問MySQL報 ERROR 2003 和 ERROR 1130 問題解決方法

環境如下

MySQL安裝在192.168.137.100 Ubuntu 12.04 LTS

客戶端在 192.168.137.200 win7

客戶端希望訪問MySQL數據庫,會出現如下錯誤“ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.137.100' (10061)

C:\>mysql -h 192.168.137.100 -u root -p
Enter password: ****
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.137.100' (10061)

解除地址綁定

這是因爲缺省情況下MySQL是隻允許本機登錄的。修改MySQL的配置文件位於/etc/mysql/my.cnf,不進行地址綁定

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address  = 127.0.0.1  <---註釋掉這一行

再次進行訪問,錯誤變成了我這個”ERROR 1130 (HY000): Host 'abbuggy-PC.mshome.net' is not allowed to connect to this MySQL server“。主機不允許連接這個MySQL,看起來已經連上了但是由於權限不夠才被拒絕的。

C:\>mysql -h 192.168.137.100 -u root -p
Enter password: ****
ERROR 1130 (HY000): Host 'abbuggy-PC.mshome.net' is not allowed to connect to this MySQL server

進行授權

有兩種方法,直接修改表內容或者通過授權命令

改表法

將 "mysql" 數據庫的 "user" 表裏的 "host" 字段,從"localhost"改爲"%"。%相當於所有地址,也可以指定某些地址。

~$ mysql -uroot -proot
>use mysql;
>update user set host = '%' where user = 'root'>SELECT host, user FROM user;

授權法

例如,你想用root從任何主機連接到mysql服務器的話。

>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

如果你想允許用戶myuser從ip爲192.168.137.100的主機連接到mysql服務器,並使用root作爲密碼
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.137.100' IDENTIFIED BY 'root' WITH GRANT OPTION;

問題得到解決


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章