解決mysql遠程連接失敗的問題

問題描述

在我遠程連接我的服務器數(shù)據(jù)庫的時候,navicat給我提示了這么一個錯誤:


ERROR1130: Host'xxx'is not allowed to connect to thisMySQL server.

思考解決

首先

鑒于前兩天我剛幫別人解決了這個一模一樣的問題,都是錯誤代碼1130,當時解決的方向是:(不過本方法對我而言并沒有生效)

  • 先考慮端口是否開放:在客戶端telnet xxx 3306,發(fā)現(xiàn)無法telnet進去,說明:①端口可能沒開;②被防火墻把端口給限制了;

  • 再考慮端口是否開啟問題:遠程連接到服務器端,netstat -ltp .發(fā)現(xiàn)端口也開著呢呀,服務正在運行。隨后重啟了一下,在客戶端試了還是不行;

  • 那么就試試防火墻吧:關(guān)閉防火墻,systemctl stop firewalld

  • 最后端口就可以使用了。

  • 這里要說一下:


# ubuntu服務器
命令:service ufw start/stop/status

# centos服務器

命令1:service iptables start/stop/status  # centos6.x

命令2:systemctl start/stop/status firewalld  # centos7.x,centos7不用iptables了,改用firewall了

其次

是否可能是mysql的配置中bind-address的問題呢,于是我去找到mysqld.cnf文件,查看[mysqld]下的這個配置,結(jié)果也沒問題,因為其默認配置的就是0.0.0.0。不過這個問題有時候也是要考慮到的。

最后

那么就重新思索和查找解決問題的方案。就是下面這種:

(1):登錄服務器端mysql數(shù)據(jù)庫:

  • mysql -u root -p

  • use mysql;

(2):更新root用戶的主機權(quán)限:

  • update user set host = '%' where user = 'root';

  • 然后我們看一下修改后的root主機權(quán)限:select host, user from user;

image

可以看到root的主機權(quán)限已經(jīng)變成通配符%,任意主機都可以登錄了。

(3):使修改權(quán)限生效:

  • flush privileges;

  • 完成以上配置后,再去檢測鏈接,就提示成功了。

image

恢復正常訪問了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容