2017-05-24 165 views
1

我試圖從EC2實例使用PHP沒有成功連接到RDS實例。連接超時使用Amazon RDS和EC2

我與這3個行試圖建立連接(我使用MysqliDb BTW):

$db = new MysqliDb ('rds_endpoint', 'username', 'password', 'databaseName'); 
$db = new MysqliDb ('rds_endpoint', 'username', 'password', 'databaseName', 3306); 
$db = new MysqliDb ('rds_endpoint:3306', 'username', 'password', 'databaseName',); 

當我試圖得到一個表它給了我。我2002 Connection timed out檢查和表存在。

而且我查了雙方的安全組,RDS和EC2和EC2入站規則,從所有的IPS接受和RDS入站規則接受我的EC2實例的公網IP。我有另一個亞馬遜帳戶,並嘗試了上述和工作正常,所以我不知道在哪裏可以找到錯誤。

感謝

+3

你會想你的加入白名單EC2實例的** **私有IP,而不是公衆一個。更好的是,將安全組列入白名單。 – ceejayoz

+0

謝謝,現在它工作! – VictorBG

回答

3

談及到這個答案:

你會想你的加入白名單EC2實例的私人 IP,而不是公衆一個。更好的是,將安全組列入白名單。內AWS

實例將通過EC2和RDS實例的內部IP地址,而不是它們的外部面向互聯網的那些連接到RDS。

白名單安全組而不是單個IP​​意味着IP更改到EC2服務器不會撤銷其RDS訪問,並意味着啓動到該安全組的新實例將自動獲得正確的訪問權限。

+0

您能否解釋如何將其安全組列入白名單?設置私人IP地址的工作,但我想弄清楚如何設置安全組。由於 –

+1

@ tim.paetz你只寫安全組的'SG-f0123'式ID代替IP的。它會自動完成,如果你開始輸入一個名稱,IIRC。 – ceejayoz