今天在用Navicat連接配接另外一台主機上的MySQL時報錯:
Host is not allowed to connect to this MySQL server
預設安裝的mysql無法遠端連接配接是因為MySQL預設配置了不支援遠端連接配接引起的。
解決方法:
一、本地主機上登入root使用者
找到mysql.exe所在路徑,shift+右鍵,在目前視窗打開指令行。
執行指令:
mysql -uroot -proot
Enter password:
成功連接配接mysql以後,執行以下sql語句檢視user庫情況:
use mysql;
select host from user where user='root';
可以看到,mysql預設配置的host都是本地IP。
二、修改配置使之允許遠端登入通路
執行以下sql語句:
update user set host='%' where user='root';
Host設定了“%”後便可以允許遠端通路,但需要注意,這裡表裡有3條記錄,這樣更新會出錯,僅成功更新一條記錄。
接下來,把多餘的删掉,僅保留host值為'%'的記錄即可。
delete from user where user = 'root' and host <>'%';(親測,這一步非必須)
三.重新整理權限使配置生效
執行以下語句:
flush privileges
結果看上圖,執行成功了。
下面再次測試遠端連接配接。
全部語句:
mysql -u root -p/*Enter password:*********/use mysql;select host from user where user='root';update user set host = '%' where user ='root';flush privileges;
錯誤一:如果還是連接配接不到,那是不是 MySQL Server 綁定了本地位址,打開 /etc/mysql/my.cnf,
找到:bind-address = 127.0.0.1
去除 IP 位址綁定,把它改為:bind-address = 0.0.0.0
然後重新開機 MySQL Server:/etc/init.d/mysql restart
錯誤二:
ERROR 2003 (HY000): Can’t connect to MySQL server on ‘hostxxxxx’ (10061)
錯誤原因:
mysqld資料庫服務沒有啟動。
解決辦法:
檢查 :在windows 的任務管理器,或者 unix/linux 下 ps -aux | grep mysql 看一下。确認服務已經啟動。
處理 :啟動mysqld 服務
錯誤三:
防火牆開啟了
解決方法:
防火牆需要允許3306端口連接配接。