遠端連線MySQL伺服器報錯ERROR 1130 (HY000)
在我們遠端連線MySQL伺服器時,報如下錯誤。
[root@dlidcvmzjgltest2 ~]# mysql -h 10.1.1.6 -u root -p
Enter password:
ERROR 1130 (HY000): Host '10.1.1.5' is not allowed to connect to this MySQL server
原因是:你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 "mysql" 資料庫裡的 "user" 表裡的 "host" 項,從"localhost"改稱"%"
我們可以使用下面命令查看驗證。
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select user,host from user;
+------+-----------+
| user | host |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1 |
| root | localhost |
| root | master |
+------+-----------+
4 rows in set (0.00 sec)
解決方案:
1。 改表法。
mysql -u root -pmysqlpw
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
2. 授權法。
例如,你想root使用mysqlpw從任何主機串連到mysql伺服器的話。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mysqlpw' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允許使用者root從ip為192.168.1.6的主機串連到mysql伺服器,並使用mysqlpw作為密碼
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'mysqlpd' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允許使用者root從ip為192.168.1.6的主機串連到mysql伺服器的dk資料庫,並使用mysqlpd作為密碼
GRANT ALL PRIVILEGES ON dk.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'mysqlpd' WITH GRANT OPTION;
FLUSH PRIVILEGES;
我用的第一個方法,剛開始發現不行,在網上查了一下,少執行一個語句 mysql>FLUSH RIVILEGES 使修改生效.就可以了
另外一種方法,不過我沒有親自試過的,在csdn.net上找的,可以看一下.
在安裝mysql的機器上運行:
1、d:\mysql\bin\>mysql -h localhost -u root //這樣應該可以進入MySQL伺服器
2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION //賦予任何主機訪問資料的許可權
3、mysql>FLUSH PRIVILEGES //修改生效
4、mysql>EXIT //退出MySQL伺服器
這樣就可以在其它任何的主機上以root身份登入啦!
本文永久更新連結地址: