无法通过PHP从EC2连接到RDS。 我可以直接思考

我已经build立了一个EC2实例,它安装了mysql和php-mysql(不是mysql-server)。

我已经设置了RDS实例,并将安全组设置为EC2实例。

可以通过命令行从EC2连接,但是当我尝试通过mysqli连接时,我得到的消息:不能连接到'XXXX.xxxxxxx.us-east-1.rds.amazonaws.com'MySQL服务器'

这是我第一次和他们合作。

我在这里错过了什么?

define("HOST", "XXXX.xxxxxxx.us-east-1.rds.amazonaws.com"); define("DBUSER", "my_user"); define("PASS", "********"); define("DB", "mydb"); define("PORT", 3306); $link=mysqli_connect(HOST,DBUSER,PASS,DB,PORT); // Check connection if (mysqli_connect_errno($link)){ echo "Failure to connect: " . mysqli_connect_error(); } mysqli_close($link); 

我发现了一个类似的问题 。

解决方法是运行setsebool -P httpd_can_network_connect=1

我必须对SELinux进行更改,我的实例是RHEL6。

setsebool httpd_can_network_connect=1 setsebool httpd_can_network_connect_db on

我发现奇怪的是,SELinux没有logging/var/log/audit/audit.log

这帮助了我:

我删除了我的DSN中的端口规范。 然后pipe理连接表单EC2到RDS。

链接: https : //stackoverflow.com/questions/23955446/sqlstatehy000-2005-unknown-mysql-server-host-mysql1-alwaysdata-com3306-2