1. 程式人生 > >mysql遠端連線:ERROR 1130 (HY000): Host '*.*.*.*' is not allowed to connect to this MySQL server解決辦法

mysql遠端連線:ERROR 1130 (HY000): Host '*.*.*.*' is not allowed to connect to this MySQL server解決辦法

安裝完MySQL後,遠端連線資料庫的時候,出現 ERROR 1130 (HY000): Host '192.168.0.1' is not allowed to connect to this MySQL server提示資訊,不能遠端連線資料庫。考慮可能是因為系統資料庫mysql中user表中的host是localhost的原因,於是,我嘗試把這個值改為自己伺服器的ip,果然就好用了,不過用 mysql -u root -p命令就連不上資料庫了,需要用mysql -h 伺服器ip -u root -p因為預設的連線mysql資料庫user表中host的值,而這個命令的預設host是localhost,就連不上了。

具體操作方法:

用localhost連線上mysql後,
use mysql;
update user set host='123.456.789.254';(IP為你想要遠端連線資料庫的本地機器的IP)
\q;

退出mysql,然後重新啟動mysql就可以了。

其他解決方案

2. 改表法。可能是你的帳號不允許從遠端登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql後,更改 "mysql" 資料庫裡的 "user" 表裡的 "host" 項,從"localhost"改稱"%"
mysql -u root -pvmware
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>flush privileges;
mysql>select host, user from user;

3. 授權法。例如,你想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.0.1' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;


***********************************************************************
phpMyAdmin說是使用者名稱密碼的問題,這就奇怪了,root使用者名稱密碼肯定沒有問題,而且通過命令列連線沒有問題。又仔細檢視配置檔案,還是沒有問題。於是去搜了一下,找到這個解決方法.

先用root登入MYSQL伺服器,執行
mysql>set  password  for  你要用的使用者名稱@"localhost"=old_password('這個使用者的密碼');

原因是因為你使用的mysql伺服器版本中使用了新的密碼驗證機制,這需要客戶端的版本要在4.0以上,原來的密碼函式被改為old_password();,這樣使用password()生成的密碼在舊的版本上就可以解決這個問題了.