我试图将一个webapp推送到Heroku,并且无法让Postgres接受TCP/IP连接。我已经完成了关于这个主题的所有问题/答案,但仍然无法解决这个问题。我是数据库/网络开发新手,任何帮助都非常感谢!如何配置PostgreSQL以允许TCP/IP连接?
在postgresql.conf中,我将监听地址变量从localhost更改为#listen_addresses = ‘*’
。端口看起来正确:#port = 5432
。
我还添加了0.0.0.0
到pg_hba.conf
(这是正确的顺序):
# TYPE DATABASE USER ADDRESS METHOD
local all all trust
host all all 0.0.0.0/0 md5
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
添加该地址,当我在终端称为postgres
后,它跑不过一个致命的错误:
LOG: database system was shut down at 2015-09-06 16:21:43 PDT
LOG: MultiXact member wraparound protections are now enabled
LOG: database system is ready to accept connections
LOG: autovacuum launcher started
FATAL: database "admin" does not exist
当我试图发动psql
,相同的消息:
psql: FATAL: database "admin" does not exist
我能够通过另一个数据库连接到psql
:psql -d template1
并创建了一个新的管理数据库。然后我创建了我的应用程序所需的数据库,并通过使用Gradle运行我的项目来确保它的功能。在此过程中,我已多次停止服务器,以查看更改是否有效。
Heroku的日志仍然显示我改变Postgres的配置文件之前有同样的问题:与错误
Caused by: org.postgresql.util.PSQLException: Connection to
localhost:5432 refused. Check that the hostname and port are correct
and that the postmaster is accepting TCP/IP connections.
当我访问http://localhost:5432/,显示“没有收到任何数据”“无法加载网页,因为服务器发送无数据“
感谢所有帮助
版本:!的Mac OSX 10.10.5和PostgreSQL 9.4.4,Heroku的3.41.5,摇篮2.5的Java 1.8.0_51使用自制安装的所有
的几件事情后'pg_hba.conf' /'PostgreSQL的考虑1)'listen_addresses'应该与你指定的2值未注释)配置应该在postgres中通过重新启动服务或psql'pg_reload_conf()'重新加载3)你没有在你的问题中指出你的应用程序的连接属性,所以试着检查它们,试着运行'psql -U yourAppUser -d yourDatabase -h hostnameAddressOrDNS'以检查它们。 –
只是为了澄清:你是否试图使用[Heroku提供的数据库](https://elements.heroku.com/addons/heroku-postgresql)或者你正在运行一个你自己的?如果不是Heroku,这个其他Postgres数据库在哪里运行(本地,AWS等)? – codefinger
@codefinger你是对的 - 我试图使用我自己的数据库。我会尝试使用Heroku的,看看它是如何工作的。 –