MYSQL远程连接不上的解决方法
1.排除网络或防火墙问题
先看是否能ping通远程服务器,ping 192.168.1.211,如果不可以就是网络问题。然后,检查端口是否被防火墙挡住了,telnet 192.168.1.211 3306,如果连接失败,出现以下信息就是防火墙的问题。
No route to host
解决方案
把虚拟机中的防火墙清一下
sudo iptables -F
2.检查MySQL配置
如果开启了防火墙,telnet还是失败,通过netstat查看3306的端口状态:
netstat -apn|grep 3306
tcp6 0 0 127.0.0.1:3306 :::* LISTEN 13524/mysqld
注意地方,这说明3306被绑定到了本地。检查一下my.cnf的配置,这里可以配置绑定ip地址。
bind-address=addr
不配置或者IP配置为0.0.0.0,表示监听所有客户端连接。
ps:我开启3306端口,并且检查MySQL配置之后,telent仍然失败,但是在本机telnet是ok的,再三确认了配置没有问题。后来跟我们的ucloud账号管理员提了一下,才知道ucloud管理后台也需要开启3306端口,用云服务器的留意这个。
3.检查用户访问权限
MySQL建用户的时候会指定一个host,默认是127.0.0.1/localhost,那么这个用户就只能本机访问,其它机器用这个用户帐号访问会提示没有权限,host改为%,表示允许所有机器访问。

flush privileges;
最后,别忘了重启mysql使配置生效。
引用文章:
https://www.jb51.net/article/103770.htm
本文介绍了如何解决MySQL远程连接不上的问题,包括检查网络和防火墙设置、配置MySQL的my.cnf文件以允许远程访问、确保云服务商后台已开放端口,以及管理用户访问权限。在解决过程中,要关注3306端口的状态,修改bind-address配置,并使用flush privileges刷新权限。最后别忘了重启MySQL服务以应用更改。
1万+

被折叠的 条评论
为什么被折叠?



