2017-04-08 232 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 

並嘗試再次訪問。