HEROKU POSTRES错误:连接被拒绝服务器是否在主机“..compute-1.amazonaws.com ...”上运行并接受端口5432上的TCP / IP连接?

时间:2015-07-23 04:47:58

标签: postgresql heroku tcp psql

我几周来一直试图找出问题所在,但我似乎无法解决这个问题。

我正在开发一个Web应用程序,并且已使用Heroku部署到生产中。我正在使用Heroku Postgres作为我的数据库,我想从我的本地机器psql到该托管数据库进行更改。我试过Mac OS X和Linux Mint。

然而,无论我尝试什么,我都会收到以下错误:

---> Connecting to HEROKU_POSTGRESQL_ORANGE_URL (DATABASE_URL)
psql: could not connect to server: Connection refused
    Is the server running on host "ec2-***-**-***-**.compute-1.amazonaws.com" (***.**.***.**) and accepting
    TCP/IP connections on port 5432?

我开始认为我可能需要通过SSH连接到Amazon EC2实例并更改Postgres配置?这甚至可能吗?

4 个答案:

答案 0 :(得分:0)

当我的pg_hba.conf或AWS安全组未正确配置时,我遇到了这种错误。有很多关于如何解决这个问题的文档。例如,您可以查看此列表link

答案 1 :(得分:0)

您无法直接连接到运行Heroku Postgres实例的EC2实例;它由Heroku管理,普通用户无法连接到它。

如果您的应用程序在Heroku中正常运行,并且您正在运行heroku pg:psql以尝试连接到数据库,则很可能您的本地网络存在一些问题,导致您无法连接到Postgres数据库,就像阻止出站连接的防火墙一样。 Heroku Postgres数据库向公众开放,对IP范围没有任何限制。

答案 2 :(得分:0)

您可以通过将此属性添加到数据库连接的末尾来直接连接到EC2 Heroku Postgress实例网址:

jdbc:postgresql://<host>/<dbname>?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory

答案 3 :(得分:0)

您使用的Internet连接的防火墙代理可能存在问题。尝试通过连接到您的手机网络共享来再次启动该命令,只是为了验证问题是否在那里。