2017-04-08 262 views
0

我是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被允许。

为什么我可以从我的笔记本电脑连接,但不能连接我的网络服务器?

+0

马特,是你的安全组设置为特定IP还是开放给所有人(0.0.0.0/0)?您的服务器是否启用启用SELinux的CentOS? – rock3t

+0

嗨,感谢您的回应,安全组设置为全部,如上所述。运行CENTOS 6.8的服务器和SELinux被启用 – MattBlack

回答

1

假设您没有修改NACL,请检查RDS是否允许从服务器的IP连接到端口3306。如果你想打开它,它应该是0.0.0.0/0。

此外,请确保'公开访问'设置为'是'。

0

考虑到您正在运行支持SELinux的CentOS,检查审计文件总是一个好主意。

/var/log/audit/audit.log 

这就是说我确定问题是缺少网络标志。以root身份运行。

setsebool -P httpd_can_network_connect 1 

并尝试再次访问。