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


Unable to connect to MySQL Database on RDS from application hosted outside AWS

我已按照AWS文档中的说明,通过添加cidr授权连接到RDS。

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

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

当我试图打开我的应用程序,我得到这个错误

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

其他人也面临同样的问题吗?你是怎么解决这个问题的?问候拉维

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

问题现已修复。我意识到我的mysql端口3306在服务器上被阻塞,不允许任何通信响应。

谢谢你的帮助。

编辑:
问题是这样解决的。RDS允许来自两个源的传入连接。1. 可信IP2. Ec2 -安全组

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

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

主机更改为RDS 端点并测试。