我試圖將一個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的,看看它是如何工作的。 –