无法从 php 连接到 AWS RDS MySQL
Unable to connect to AWS RDS MySQL from php
我是 AWS 新手,已经设置了一个 mysql RDS 实例。
我可以使用 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。
为什么我可以从我的笔记本电脑连接而不是我的网络服务器?
考虑到您是 运行 启用了 SELinux 的 CentOS,检查审计文件总是个好主意。
/var/log/audit/audit.log
话虽这么说,但我确定问题出在缺少网络标志。 运行 以下为 root。
setsebool -P httpd_can_network_connect 1
并再次尝试访问。
假设您没有修改 NACL,请检查 RDS 是否允许从您服务器的 IP 连接到端口 3306。如果你想为所有人打开它(这不安全因此不推荐)它应该是 0.0.0.0/0.
此外,确保 'Publicly Accessible' 设置为 'yes'。
我是 AWS 新手,已经设置了一个 mysql RDS 实例。
我可以使用 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。
为什么我可以从我的笔记本电脑连接而不是我的网络服务器?
考虑到您是 运行 启用了 SELinux 的 CentOS,检查审计文件总是个好主意。
/var/log/audit/audit.log
话虽这么说,但我确定问题出在缺少网络标志。 运行 以下为 root。
setsebool -P httpd_can_network_connect 1
并再次尝试访问。
假设您没有修改 NACL,请检查 RDS 是否允许从您服务器的 IP 连接到端口 3306。如果你想为所有人打开它(这不安全因此不推荐)它应该是 0.0.0.0/0.
此外,确保 'Publicly Accessible' 设置为 'yes'。