mysql无法远程连接有三种情况
第一种情况,mysql数据库中root表host是127.0.0.1或者localhost
这时候如果登陆会提示以下信息

复制以下代码查询是否是127.0.0.1或者localhost,请提前登陆mysql服务器再执行此命令
use mysql;
select user,host from user;

如果是这种情况,在命令行输入以下三条命令修改
use mysql;
update user set host = '%' where user = 'root';
select user,host from user;
此时可以看见root的host是%,%代表可以从任何IP登陆MySQL,修改完成之后重启Mysql服务即可
sudo systemctl restart mysql
第二种情况
输入密码后没有任何提示一直等待中
以Ubuntu服务器为例,关闭防火墙
ufw disable
第三种方法
查看iptables规则,看是不是iptables规则不允许MySQL流量进入
iptables -L

这里可以看到mysql是DROP其他都是ACCEPT,那么把他删除
iptables -D INPUT 6
这个6是第6行,你是第几行就是几
重启ipables生效
systemctl restart iptables
本文详细介绍了MySQL无法远程连接的三种情况:1)检查root用户host设置,将其改为%允许从任何IP访问;2)关闭Ubuntu服务器的防火墙;3)检查并调整iptables规则以允许MySQL流量。每种情况后都给出了相应的操作步骤和重启服务的命令。

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



