通過Navicat遠端連線MySQL配置
環境:
伺服器Ubuntu12.04+MySQL5.5
主機 Windows10 + Navicat for MySQL
Ubunut下檢視MySQL版本命令: mysql --version
Ubuntu:~$ mysql --version
mysql Ver 14.14 Distrib 5.5.46, for debian-linux-gnu (i686) using readline 6.2
問題一:在主機下通過Navicat連線伺服器MySql的時候,提示“2003 Can't connect to mysql server on 'xxx.xxx.xxx.xxx'(10038)”
原因:伺服器3306遠端埠沒有開放
解決:
1.首先檢視埠是否開啟,命令:netstat -an|grep 3306
會顯示127.0.0.1:3306,表示的是本地
2.開啟mysql配置檔案,命令:sudo vim /etc/mysql/my.cnf
將bind-address = 127.0.0.1登出
3.重啟Ubuntu
再次執行netstat -an|grep 3306,發現已經變化。
問題二:在解決問題一後,用主機Natcivat再次連線伺服器Mysql,出現另一錯誤提示:1130-Host‘XXX.XXX.XXX.XXX’ is not allowed to connect to this MySQL server
原因:遠端伺服器無許可權登入MySQL
解決:
1.Ubuntu下登入MySQL:mysql -uroot -p
2.執行下命令
GRANT ALL PRIVILEGES ON *.* TO '你的使用者名稱'@'%' IDENTIFIED BY '你的資料庫密碼' WITH GRANT OPTION;
3.在執行下
flush privileges;
這個命令是重新整理一下許可權,不用重啟
以上只針對5.7以下版本。
5.7以上執行的時候會報錯誤
這個時候,需要先執行重新整理許可權:mysql> GRANT ALL PRIVILEGES ON *.* TO 'XXX'@'%' IDENTIFIED BY 'ZZZZZ' WITH GRANT OPTION; ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. mysql> exit
flush privileges;
參考博文:
http://www.111cn.net/sys/Ubuntu/110136.htm
http://blog.csdn.net/everything1209/article/details/42418765