![无法将 VPS 服务器托管的节点 js 代码连接到另一个提供商 MYSQL 服务器](https://linux22.com/image/699049/%E6%97%A0%E6%B3%95%E5%B0%86%20VPS%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%89%98%E7%AE%A1%E7%9A%84%E8%8A%82%E7%82%B9%20js%20%E4%BB%A3%E7%A0%81%E8%BF%9E%E6%8E%A5%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E6%8F%90%E4%BE%9B%E5%95%86%20MYSQL%20%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我刚刚购买了非托管 VPS。我正在运行一个 node js 应用程序,该应用程序使用存储在其他地方的 mysql 数据库的连接字符串。
vps(nodejs web)与mysql服务器连接不成功。
当我尝试从本地计算机远程登录到 mysql 服务器时,一切顺利。但是,当我从 VPS SSH 远程登录到 mysql 服务器时,出现以下错误:
r]# telnet 64.XX.XX.XX 3306
Trying 64.XX.XX.XX...
telnet: connect to address 64.XX.XX.XX: Connection timed out
我尝试设置以下防火墙规则集,但没有成功。
iptables -L 结果:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp spt:mysql ctstate ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp spt:mysql state ESTABLISHED
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:mysql
ACCEPT tcp -- anywhere anywhere tcp dpt:mysql
答案1
您似乎只允许建立连接,您也需要允许建立新连接才能使连接变为建立连接。
我会尝试
iptables -I INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
看看它是否有效,然后根据需要进行调整。