2015-12-11 90 views
2

使用從Heroku的節點應用程序連接到Amazon RDS數據庫節點,MySQL的

app.connectionPool = mysql.createPool({ 
     host  : * * *, //(a.k.a ....rds.amazonaws.com) 
     user  : * * *, 
     password : * * *, 
     database : * * *, 
     ssl: 'Amazon RDS' 
}); 

初始化數據庫池,並在本地工作正常(我的IP是RDS設置白名單),但給人[Error connect ETIMEOUT]錯誤時從heroku運行。

我也試過:

app.connectionPool = mysql.createPool({ 
     host  : * * *, // (....rds.amazonaws.com) 
     user  : * * *, 
     password : * * *, 
     database : * * *, 
     ssl : { 
     ca : fs.readFileSync(__dirname + '/config/amazon-rds-ca-cert.pem') 
     } 
}); 

以下node-mysqlheroku文檔,但也不能工作。

PS:我已經根據heroku文檔中的建議設置了GRANT USAGE ON *.* TO 'my_username'@'%' REQUIRE SSL;

回答

0

我不知道你是否仍在苦苦掙扎(兩年後),但你可能需要配置你的RDS實例來接受來自Heroku運行你的實例的任何IP地址的傳入請求。或者(如果這只是您不太關心的業餘愛好),請打開所有IP地址。如果項目嚴重或者有重要數據,不要這樣做。

您可以通過在aws控制檯中打開rds實例並查看「安全組」來更改IP限制。您可能會看到允許哪些IP地址訪問實例的規則 - 這就是您應該更改的內容。

希望這個工程。

+0

永遠不要開放所有的港口 – Gibolt

相關問題