DigitalOcean上的NodeJ无法连接到Amazon RDS上的MySQL数据库

时间:2015-04-18 15:05:58

标签: mysql node.js amazon-rds digital-ocean

我们在DigitalOcean上部署了NodeJS Web服务,并连接到Amazon RDS上的MySQL数据库。我可以使用Navicat Premium远程访问MySQL RDS,也可以使用NodeJS localhost(这意味着我在localhost上的应用程序可以连接到RDS数据库)

但是当我将我的应用程序部署到DigitalOcean服务器时。它无法连接到MySQL RDS。连接已超时。

我使用命令查看开放端口:

iptables -L

结果是:

Chain INPUT (policy ACCEPT)
target prot opt source destination

ACCEPT tcp -- anywhere anywhere tcp dpt:3000
ACCEPT tcp -- anywhere anywhere tcp dpt:mysql
ACCEPT tcp -- anywhere anywhere tcp dpt:3000
ACCEPT tcp -- anywhere anywhere tcp dpt:mysql
ACCEPT tcp -- anywhere anywhere tcp dpt:mysql

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

我看到输出和输入也为端口3306打开了。但是NodeJ仍然无法连接。问题是DigitalOcean Droplet没有打开端口3306,NodeJS应用程序无法通过此端口连接到外部。

(P / S:亚马逊RDS还打开了IP的所有端口和任何地方)

请帮助我,谢谢

1 个答案:

答案 0 :(得分:3)

设置Amazon RDS后,它只允许来自我的IP地址的连接。

要解决此问题,请转到安全组设置,并允许从任何地方或仅与相关的NodeJS服务器连接到RDS。