每次裝 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]