我一直在寻找stackoverflow很长一段时间,但我似乎无法找到解决方案......这就是我的情况:
现在这是我的问题:
我似乎无法弄清楚如何通过简单的PHP脚本从EC2连接到RDS。每当我尝试连接时,我都会收到错误代码13.由于EC2可以通过终端连接,我猜这是因为它位于同一个子网中;但是,当我尝试通过PHP连接时(我假设此时它正在尝试连接EIP地址)我收到错误。
奇怪的是我可以通过Sequel Pro(Mac相当于Navicat或phpMyAdmin)连接到RDS,但不能通过EC2连接到RDS。
我开始认为它不再是安全组问题,而是我的EC2实例上的OS / PHP配置完全让我不知所措。
有什么想法?先谢谢!
答案 0 :(得分:5)
我正在从另一个帖子重新发布我的答案,因为你的答案是相关的:
你在EC2上运行的是什么?只是询问它是否是SELinux(安全增强型Linux),在这种情况下它可能是安全限制。
在您的终端,如果您运行:
getsebool -a | grep httpd
你应该能够看到这个限制(你的网络服务器是否可以"网络"否则。如果不能,那么运行它,这应该可以解决你的问题:
setsebool -P httpd_can_network_connect 1
希望解决它,否则我不知道问题出在哪里,特别是因为你说你可以通过终端连接(所以AWS安全组不应该是问题)。
答案 1 :(得分:0)
您可以尝试使用内部子网IP地址连接到RDS实例。要从同一子网中的EC2实例中找出您的内部IP地址(来自您的VPC子网):
ping <your-rds-endpoint-without-3306>
仔细检查您是否使用了正确的凭据。