Rails 5 Heroku应用日志出现PG::ConnectionBad错误,IP不匹配是原因吗?
Heroku Rails 5应用数据库连接超时问题修复
是的,数据库主机地址不匹配就是导致连接失败的直接原因。你的应用仍在尝试连接旧数据库的主机地址(日志中显示的ec2-5X-83-25-2X7.compute-1.amazonaws.com),但该数据库已被替换为新的实例(Heroku设置中的ec2-18-2XX-36-213.compute-1.amazonaws.com),因此必然出现连接超时。
以下是具体修复步骤:
- 强制刷新数据库环境变量关联
运行命令:heroku pg:promote DATABASE_URL,该命令会让应用强制使用当前绑定的数据库实例的正确连接参数。 - 验证并修正
DATABASE_URL配置
执行heroku config:get DATABASE_URL,检查输出的主机地址是否与Heroku设置中的一致。若不一致,从数据库设置页面的"Credentials"栏获取完整连接字符串,手动更新:heroku config:set DATABASE_URL=postgres://<用户名>:<密码>@ec2-18-2XX-36-213.compute-1.amazonaws.com:5432/<数据库名> - 重启应用使配置生效
运行命令:heroku restart - 确认连接状态
重启后执行heroku run rails db:version,若能正常返回数据库版本号,说明连接问题已解决。
错误日志详情:
FATAL -- : [465fe0b0-f387-4b4a-b215-779dbb8dbf7e] PG::ConnectionBad (connection to server at "ec2-5X-83-25-2X7.compute-1.amazonaws.com" (5X.83.25.2X7), port 5432 failed: Connection timed out)
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

