远程服务器无法访问RDS数据库

从我的服务器访问我的Amazon RDS MySQL数据库时遇到问题。

我得到这个: –

[Thu Sep 22 13:45:33 2011] [error] [client xx.xx.xx.xx] PHP Warning: mysqli::mysqli() [<a href='function.mysqli-mysqli'>fqli-mysqli</a>]: (HY000/2003): Can't connect to MySQL server on 'xxxx-1.rds.amazonaws.com' (110) xxx.php on line 22, referer: xxx** 

我已经尝试通过服务器上的cmdline手动访问:

mysql -h xxxx.rds.amazonaws.com -p –port = 3306

然后我要求input密码,然后挂起来说

错误2003(HY000):无法连接到'xxxx.rds.amazonaws.com'(110)上的MySQL服务器

这是一个端口和/或防火墙相关的问题? 如果是的话,我该怎么处理?

是不是因为我已经在3306端口上运行了mysql srvr?

可能的原因有: – 防火墙阻止访问端口3306 – 数据库服务器未在默认端口(3306)上运行 – MySQL守护程序configuration为仅接受来自本地主机的连接,而不是来自远程主机。 (可以通过“netstat -ntlp”来testing)。

我认为你的安全组ec2实例必须有出站{所有TCP},并select目的地或你的IP地址

我有同样的问题,试图连接到远程MySQL数据库。

我通过在数据库服务器上打开防火墙来解决这个问题,以允许stream量通过:

 sudo ufw allow mysql 

RDS服务器不能公开访问。 如果尝试ping端点URL,则会看到它返回私有IP(本地地址在DB子网上)IP,而不是公用IP。

由于无法将弹性IP附加到RDS(因为它将连接到networking接口而不是连接端点),所以您有两种访问RDS远程的选项。

A)使用SSH隧道B)使用公有子网创buildVPC,并使用networking地址转换将连接路由到私有子网。 您应该通过弹性负载平衡器路由连接以避免单点故障。