远程账号
需要添加一个用于远程访问的账户,此账号可以是root本身,密码可以是不同于本地的密码。
大致检查步骤
- 登录到服务器,进入mysql
- 输入命令查看是否有 % host 记录 且 user 是 root
- 命令:
use mysql;
select host,user from user;

- 如果没有则需要添加相关记录,之前一篇文章里面有提到过,链接如下
- 拉到下面,远程访问 那里.
实例安全组
腾讯云或者阿里云服务器的实例里面,找到安全组,里面的进出规则,
需要添加对应端口3306(下图是阿里云控制台)

防火墙(多数情况)
大多数情况来自于防火墙。
首先看下防火墙(如下图)
- 我的服务器防火墙是firewall 可以看到服务已经禁用了
- 查看状态 ,关闭防火墙 ,关闭服务
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl mask firewalld

这样可能还没有完。比如iptables
关闭服务或者添加规则
service iptables stop
查看iptables状态,如下图

编辑如下文件修改或添加规则
vi /etc/sysconfig/iptables

重启一下iptables
service iptables restart
在这里有点意外,关闭了iptables服务,数据库还是不能远程访问。但是在添加了如上3306的端口规则后,关闭iptables又可以远程访问了。
MySQL远程连接失败排查指南

本文介绍了MySQL远程连接失败的常见原因,包括检查远程账号的% host记录、配置实例的安全组规则,以及调整服务器的防火墙设置。在阿里云实例中,需在安全组添加3306端口的出入规则,并确保防火墙(如firewall或iptables)配置正确,允许3306端口通信。
601

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



