无法从AWS外部托管的应用程序连接到RDS上的MySQL数据库

时间:2014-03-27 09:07:59

标签: php mysql amazon-web-services

我通过添加AWS文档中提到的CIDR来授权连接到RDS。

所以我能够从本地系统连接和管理我的RDS实例(我在CIDR中添加了我的本地IP)

我的应用程序实例位于AWS外部的服务器上,即使将我的应用程序服务器IP添加到CIDR后只能使用一个IP / 32,也无法连接到数据库。

当我尝试打开我的应用程序时,我收到此错误

Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on '<rds endpoint>' (4)

其他人是否面临同样的问题? 你是怎么解决它的? 问候 拉维

2 个答案:

答案 0 :(得分:0)

您的应用程序是在防火墙后面还是在前面?它是否具有公共IP或是否在您的网络上使用内部IP?如果应用程序服务器位于防火墙后面,您可能需要允许安全组的前端IP访问访问RDS实例。

答案 1 :(得分:0)

现在问题已解决。 意识到我的mysql端口3306在服务器上被阻止,并且不允许任何通信响应。

感谢您的帮助。

编辑:
那么,问题是如何解决的。 RDS允许来自两个源的传入连接。 1.可靠的IP 2. ec2-安全组

当允许来自任何外部IP的连接时,我们必须将该IP或IP范围添加到RDS实例中的安全组。它在RDS控制台中可用。 点击here了解更多详情

外部服务器也应允许通过mysql端口(3306)进行通信,因此请确保在应用程序服务器上启用3306。

主机 更改为RDS 端点 并进行测试。它应该工作。