AWS RDS无法从php连接到mysql
问题描述:
我是AWS新手,已经设置了一个mysql RDS实例。AWS RDS无法从php连接到mysql
我能够使用MySQLWorkbench从我的笔记本电脑连接,但是当我尝试从我的一个服务器下面的代码(不是AWS服务器),我收到以下错误连接:
Warning: mysqli::mysqli(): (HY000/2002): Connection timed out in /home/asmserverco/public_html/sms/login.php on line 28 Connection failed: Connection timed out
这里PHP的连接代码:
$servername = "****.us-west-2.rds.amazonaws.com";
$username = "awsasm";
$password = "****";
$dbname = "sms";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
我已经设置的实例的安全组的所有流量从任何IP被允许。
为什么我可以从我的笔记本电脑连接,但不能连接我的网络服务器?
答
假设您没有修改NACL,请检查RDS是否允许从服务器的IP连接到端口3306。如果你想打开它,它应该是0.0.0.0/0。
此外,请确保'公开访问'设置为'是'。
答
考虑到您正在运行支持SELinux的CentOS,检查审计文件总是一个好主意。
/var/log/audit/audit.log
这就是说我确定问题是缺少网络标志。以root身份运行。
setsebool -P httpd_can_network_connect 1
并尝试再次访问。
马特,是你的安全组设置为特定IP还是开放给所有人(0.0.0.0/0)?您的服务器是否启用启用SELinux的CentOS? – rock3t
嗨,感谢您的回应,安全组设置为全部,如上所述。运行CENTOS 6.8的服务器和SELinux被启用 – MattBlack