先上结论,只提出最容易忽略的地方
- 服务器是阿里云、腾讯云等平台,平台本身自带的防火墙没有开启
- iptables规则中禁用了3306,即使你根本没有启用iptables服务
第二条是最离谱的
从这里可以看到,我服务器并未启用 iptables 服务
但是通过命令查看iptables规则,发现3306端口是DROP,也就是抛弃3306端口数据,导致链接不上
可以通过如下命令来测试端口是否可以连接
telnet 服务器IP 3306
附录
# 查看服务是否开启
service iptables status
# 查看iptables规则
解决方案
# 移除3306端口的禁止规则
iptables -D INPUT -p tcp --dport 3306 -j DROP
# 放行3306端口的访问
iptables -I INPUT -p tcp --dport 3306 -m state --state NEW -j ACCEPT
# 保存规则信息
service iptables save