也許這個問題重複,但我沒有得到任何解決方案我使用的是centos 7和Postgres 9.3。 雖然連接PostgreSQL服務器它通過錯誤,Postgres服務器拒絕連接
錯誤
拒絕連接在服務器上的主機 「localhost」 的運行(:: 1) 和端口接受TCP/IP連接5432
即使我設置pg_hba.config文件,但我仍得到相同的錯誤 我試圖刪除postmaster.pid
,但我得到一個錯誤no such file and no pid exist
請告訴我解決
也許這個問題重複,但我沒有得到任何解決方案我使用的是centos 7和Postgres 9.3。 雖然連接PostgreSQL服務器它通過錯誤,Postgres服務器拒絕連接
錯誤
拒絕連接在服務器上的主機 「localhost」 的運行(:: 1) 和端口接受TCP/IP連接5432
即使我設置pg_hba.config文件,但我仍得到相同的錯誤 我試圖刪除postmaster.pid
,但我得到一個錯誤no such file and no pid exist
請告訴我解決
我有同樣的問題,我解決了這個與解釋:
「野刺在黑暗中:你的機器上一個IPv6
解析器其中localhost
默認的IPv6地址::1
,但在的listen_addresses postgresql.conf
設置爲127.0.0.1
或0.0.0.0
而不是*
或者您正在使用一個較舊的PostgreSQL,該庫使用的C庫不具有透明的IPv6
支持。
變化listen_addresses
到localhost
並確保localhost
解析爲兩個IPv4
和IPv6
地址,或將其設置爲::1
,127.0.0.1
明確指定兩個IPv4
和IPv6
。或者只需將其設置爲*
即可在所有接口上偵聽。另外,如果你不關心IPv6
,連接到127.0.0.1
,而不是localhost
「。
參考鏈接here。
我覺得thispost
也可以幫助你。
請檢查是否防火牆允許連接
如果在Ubuntu上有命令sudo ufw status
結果會是這樣的
To Action From
-- ------ ----
22 LIMIT Anywhere
443 ALLOW Anywhere
80 ALLOW Anywhere
8000 ALLOW Anywhere
Nginx Full ALLOW Anywhere
您可以看到端口5432不被允許。
現在運行命令sudo ufw allow 5432/tcp
和 檢查UFW狀態
sudo ufw status
現在將返回
22 LIMIT Anywhere
443 ALLOW Anywhere
80 ALLOW Anywhere
8000 ALLOW Anywhere
Nginx Full ALLOW Anywhere
5432/tcp ALLOW Anywhere
如果這不起作用,你可能可能還沒有允許的IP聽Postgres的。
更改listen_address = 'localhost'
到listen_address = '*'
在postgres.conf文件。
在我的機器上listen_addresses設置爲*已經 –
請檢查一下你的database.yml是否與你的端口相同,默認情況下在我的postgresql-9.2上用5433代替5432,別忘了重啓postgres服務器,好運氣 –
如果不工作,請參閱我的編輯,這個錯誤可以用變量形式解決,取決於可以是什麼 –