每次装 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,这个就需要查看各家的安全组怎么开放了
扫描二维码关注公众号,回复:
10217209 查看本文章
到这里还不能访问的话,欢迎留言或者联系 [email protected]