我有
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-mysql和heroku文档,但也没有工作。
PS:我按照GRANT USAGE ON *.* TO 'my_username'@'%' REQUIRE SSL;
文档中的建议设置了heroku。
我不知道你是否还在努力解决这个问题(两年后),但你可能需要配置你的RDS实例来接受Heroku运行你的实例的任何IP地址的传入请求。或者(如果这只是一个你并不关心的爱好)打开所有的IP地址。如果项目严重或有重要数据,请不要这样做。
您可以通过在aws控制台中打开rds实例并查看“安全组”来更改IP限制。您可能会看到允许IP地址访问实例的规则 - 这是您应该更改的内容。
希望这有效。