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授權之后,終於登錄上了。。。。
總個全過程大致
進入Linux系統下的mysql數據庫中,打開user表,找到“host”字段值為“localhost”的記錄,將值“localhost”更新為“%”。 命令如下: #mysql -u root -p Enter password: mysql>use mysql; mysql>update user set host='%' where user='root' and host='localhost'; mysql>select host,user from user;
MySQL 1130錯誤解決方法:
通過MySQL-Front或MySQL administrator連接MySQL的時候發生的這個錯誤
ERROR 1130: Host ***.***.***.*** is not allowed to connect to this MySQL server
說明所連接的用戶帳號沒有遠程連接的權限,只能在本機(localhost)登錄。
需更改 MySQL 數據庫里的 user表里的 host項
把localhost改稱%
具體步驟:登陸到MySQL
首先 use MySQL;
按照別人提供的方式update的時候,出現錯誤。
MySQL> update user set host='%' where user = 'root'; ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
然后查看了下數據庫的host信息如下:
MySQL> select host from user where user = 'root';
+-----------------------+
| host |
+-----------------------+
| % |
| 127.0.0.1 |
| localhost.localdomain |
+-----------------------+
3 rows in set (0.00 sec)
host已經有了%這個值,所以直接運行命令:
MySQL>flush privileges;