標籤:lin 遠程 登出 許可權 address 執行 add 設定檔 連接埠
參考:
http://blog.csdn.net/apple9005/article/details/53033148
問題一:在主機下通過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/mysql.conf.d/mysqld.cnf
將bind-address = 127.0.0.1登出
3.重啟資料庫
再次執行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;
通過Navicat遠端連線MySQL