mysql連不上

每次裝 mysql 不論是在本地還是 docker,都會遇到各種各樣問題,但是每次都會遇到,但是每次都忘記處理的就是遠程連接。

設置允許外網通過 3306 訪問

mysql5.7 默認不允許外網訪問的,這裏是修改這個設置

  • 修改配置文件
    我現在用的 ubuntu18 配置文件在 /etc/mysql/mysql.conf.d/mysqld.cnf

  • 找一下有沒有 port=xxxx
    沒有的話在[mysqld]下添加一行:port=3306

  • 找一下有沒有 bind-address=127.0.0.1
    這個意思是說只能本地連接,找到的話就改成 bind-address=0.0.0.0表示允許各種 ip 訪問
    如果沒找到,就添加到port下面一行即可

如果需要限制訪問 ip,只需要把 0.0.0.0 替換成需要的 ip 就 ok 了

設置允許 root 用戶外網訪問

除了上面那層限制,mysql 還對用戶訪問進行了限制,默認情況下,root 用戶不允許外網訪問,現在修改這個設置

$ mysql -uroot -p
mysql> update mysql.user set host='%' where user='root';

重啓一下 mysql

$ sudo service mysql restart

防火牆

除了 mysql 自身對遠程訪問的限制,操作系統也會對遠程訪問限制,這就是防火牆的作用,這裏只記錄 ubuntu 下關閉防火牆的方法

$ sudo ufw status # 查看當前防火牆狀態

如果結果是 status: inactive表明防火牆是關着的,直接去下一步
否則:

$ sudo ufw allow 3306

這個命令不是關閉防火牆,而是隻暴露 3306 端口

安全組

如果你用的是阿里雲或者其他哪家的雲主機,那麼很可能安全組裏沒開放 3306,這個就需要查看各家的安全組怎麼開放了

到這裏還不能訪問的話,歡迎留言或者聯繫 [email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章