解決遠程連接mysql錯誤1130代碼的方法
今天在用遠程連接Mysql服務器的數據庫,不管怎麼弄都是連接不到,錯誤代碼是1130,
ERROR 1130: Host xxx is not allowed to connect to this MySQL server
猜想是無法給遠程連接的用戶權限問題。結果這樣子操作mysql庫,即可解決。
在本機登入mysql後,更改 “mysql” 數據庫裏的 “user” 表裏的 “host” 項,從”localhost”改稱’%’。。
mysql -u root -p
mysql>use mysql;
mysql>select 'host' from user where user='root';
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;
mysql>select 'host' from user where user='root';
第一句是以權限用戶root登錄
第二句:選擇mysql庫
第三句:查看mysql庫中的user表的host值(即可進行連接訪問的主機/IP名稱)
第四句:修改host值(以通配符%的內容增加主機/IP地址),當然也可以直接增加IP地址
第五句:刷新MySQL的系統權限相關表
第六句:再重新查看user表時,有修改。。
重啓mysql服務即可完成。
下面是其他人的回答,但是沒有解決我的問題,可以提供參考
MySQL 用戶帳號的修改 error 1130
2007-09-07 09:18
MySQL上的一個數據庫要備份,裝了個MySQL的gui工具。打開"MySQL Administrator"工具,填好用戶名和密碼卻登錄不了,老是報這個錯“ERROR 1130: Host ‘lijuan-’ is not allowed to connect to this MySQL server”。網上查了下,有這兩個方法解決:
解決方法:
1、 改表法。可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql後,更改 “mysql” 數據庫裏的 “user” 表裏的 “host” 項,從"localhost"改稱"%"
mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = ‘%’ where user = ‘root’;mysql>select host, user from user;
2、授權法。例如,你想myuser使用mypassword從任何主機連接到mysql服務器的話。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允許用戶myuser從ip爲192.168.1.3的主機連接到mysql服務器,並使用mypassword作爲密碼
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
我的mysql.user裏root用戶的host果然是localhost,先用改表法給localhost改成“%”,還是不行,仍然報1130的錯誤,又按“從任何主機連接到mysql服務器”方法授權,還是報一樣的錯,最後給自己的ip授權之後,終於登錄上了。。。。乎乎。。。
mysql的ERROR 1045 在上面情況後如再出現客戶段1045可在服務器執行如下
UPDATE user SET Password=PASSWORD('123456') where USER='myuser';
FLUSH PRIVILEGES;