我是AWS新手并设置了一个mysql RDS实例。
我可以使用MySQLWorkbench从我的笔记本电脑连接但是当我尝试从我的一台服务器(而不是aws服务器)连接以下代码时,我收到以下错误:
警告:mysqli :: mysqli():( HY000 / 2002):第28行/home/asmserverco/public_html/sms/login.php中的连接超时 连接失败:连接超时
这是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。
为什么我可以从笔记本电脑连接而不是我的网络服务器?
答案 0 :(得分:1)
考虑到你在启用SELinux的情况下运行CentOS,检查审计文件总是好主意。
/var/log/audit/audit.log
话虽如此,我确定问题在于缺少网络标志。以root身份运行。
setsebool -P httpd_can_network_connect 1
并尝试再次访问。
答案 1 :(得分:1)
假设您没有修改NACL,请检查RDS是否允许从服务器的IP连接到端口3306。如果你想打开它,它应该是0.0.0.0/0。
另外,请确保' Publicly Accessible'设置为“是”'。