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]

发布了44 篇原创文章 · 获赞 25 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/csdn372301467/article/details/99736976