我几周来一直试图找出问题所在,但我似乎无法解决这个问题。
我正在开发一个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配置?这甚至可能吗?
答案 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连接的防火墙代理可能存在问题。尝试通过连接到您的手机网络共享来再次启动该命令,只是为了验证问题是否在那里。