1. 程式人生 > >通過Navicat遠端連線MySQL配置

通過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