Oracle Cloud服务器PHP连OVH VPS的MySQL报‘no route to host’
解决跨服务器MySQL连接报错(113/No Route to Host)
快速修复命令
直接在LS1(OVH服务器)上执行以下命令,即可解决连接问题:
sudo iptables -I INPUT -s 0/0 -p tcp --dport 3306 -j ACCEPT
为什么这个命令有效?
其他iptables命令无效的核心原因是规则顺序:
iptables的规则按从上到下的顺序匹配,若INPUT链中已有针对3306端口的拒绝规则,用-A追加的允许规则会被前面的拒绝规则覆盖,无法生效。-I参数会把这条允许规则插入到INPUT链的最顶端,优先匹配所有访问3306端口的TCP请求,直接放行,绕过后续可能存在的拒绝规则。
规则持久化(避免重启失效)
Ubuntu 20.04默认不会保存iptables规则,重启服务器后规则会丢失,需做持久化处理:
- 安装iptables持久化工具:
sudo apt-get install iptables-persistent
- 保存当前规则:
sudo iptables-save > /etc/iptables/rules.v4
之后重启服务器,规则会自动加载。
已排除的其他问题
根据你的场景,以下问题已确认不存在:
- MySQL用户权限:
school用户允许从任意主机(%)连接,权限配置正确。 - 网络连通性:LS2上nmap扫描LS1的3306端口正常,说明网络链路无问题。
- MySQL服务状态:本地登录、SSH隧道登录正常,服务运行正常。
内容的提问来源于stack exchange,提问作者ChristianWagner
相关产品推荐
相关产品推荐

