我有一个带有 apchane、PHP 和 phpmyadmin 的 EC2 实例。我已连接 phpmyadmin 来管理 aws RDS 服务器。它们位于同一安全组中。但是当我尝试使用 php 脚本连接到 AWS rds 服务器时,它给了我 SQLSTATE[HY000] [2003] 无法连接到 (xxx.xxx.xxx.xxx) 上的 MySQL 服务器。
我做了一些研究,大多数都说使用 setsebool -P httpd_can_network_connect=1 参考: http://www.filonov.com/2009/08/07/sqlstatehy000-2003-cant-connect-to-mysql-server-on-xxx-xxx-xxx-xxx-13/
但我不知道要配置哪个服务器?以及如何配置?
答案1
您走错了路。根本原因是您无法从使用 PHP 脚本的节点连接到 SQL 服务器。
检查您的防火墙,以确保您可以通过正确的端口(默认值为 3306,但您可能选择了其他端口)联系它,您拥有正确的 IP(确实会发生这种情况),并且它正在监听您尝试用来连接它的接口。
如果您正在使用 selinux,则需要执行类似 的操作setsebool -P httpd_can_network_connect=1
。但是,我很少看到有人同时运行 selinux 和 phpmyadmin,所以我猜您没有这样做。但是,如果您确实这样做了,则需要在运行 httpd (apache) 的服务器上设置此策略,因为该策略将应用于该软件(通过使其能够连接到网络主机)。