使用node-mysql

时间:2015-12-11 00:58:05

标签: mysql node.js heroku amazon-rds node-mysql

我有

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

用于初始化数据库池,它在本地运行正常(我的IP在RDS设置中列入白名单)但从heroku运行时出现[Error connect ETIMEOUT]错误。

我也尝试过:

 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;

1 个答案:

答案 0 :(得分:0)

我不知道你是否仍在努力解决这个问题(两年后),但你可能需要配置你的RDS实例来接受来自Heroku运行你的实例的任何IP地址的传入请求。或者(如果这只是一个你不太关心的爱好)打开所有IP地址。如果项目很严重或有重要数据,请不要这样做。

您可以通过在aws控制台中打开rds实例并查看"安全组"来更改IP限制。您可能会看到允许IP地址访问实例的规则 - 这是您应该更改的内容。

希望这有效。