使用node-mysql从heroku节点应用程序连接到Amazon RDS数据库

问题描述 投票:3回答:1

我有

 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:我按照GRANT USAGE ON *.* TO 'my_username'@'%' REQUIRE SSL;文档中的建议设置了heroku

mysql node.js heroku amazon-rds node-mysql
1个回答
0
投票

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

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

希望这有效。

© www.soinside.com 2019 - 2024. All rights reserved.