2012-07-26 69 views
0

我嘗試與PostgreSQL數據庫進行遠程連接時出現問題。我在本地PC上工作,並在服務器上有數據庫。在服務器中,我配置了pg_hba.conf和postgresql.conf。第一個文件是這樣的:遠程連接PostgreSQL時出錯

# IPv4 local connections: 
host all    all    127.0.0.1/32   md5 
host all    all    46.18.24.0/22   trust 
host all    all    193.106.180.0/22  trust 
host all    all    193.146.230.62/32  trust 

,第二個:

listen_addresses = '*'     
port = 5432    
max_connections = 100 

我相信,端口5432在服務器端被打開。

但是,當我嘗試通過pgAdmin III從我的PC(193.146.230.62)連接時,我不能。問題是什麼?

非常感謝你提前!

+2

46.18.24.0/22,您確定22?我期望在這裏有24。再次將「信任」改爲「md5」,你不相信沒有正確密碼的任何嘗試。更改postgresql.conf並在更改後重新加載pg_hba.conf後是否重新啓動PostgreSQL?錯誤信息也會很好,可以更容易地幫助你。 – 2012-07-26 07:47:27

+0

嘿試試這個'193.146.230.62 255.255.255.0'而不是這個'193.146.230.62/32' – PresleyDias 2012-07-26 07:56:45

+0

我試過193.146.230.62 255.255.255.0和193.146.230.62/32,但它沒有連接 – 2012-07-26 09:22:43

回答

0

請參閱的PostgreSQL的詳細日誌,可能是你應該設置參數log_connections =上 和log_disconnections =上順便$ PGDATA/postgresql.conf文件

的,我建議你使用MD5而不是信任

0

嘗試將listen_addresses更改爲您的服務器的本地ip,並按照PresleyDias的建議在pg_hba.conf中指定/24掩碼。

2

服務器或PC上的第三方附加防火牆是否有防火牆?

如果服務器是Linux,請檢查sudo iptables -L並查看是否有任何內容。默認的,沒有防火牆的配置是:

Chain INPUT (policy ACCEPT) target  
prot opt source    destination   

Chain FORWARD (policy ACCEPT) target  
prot opt source    destination   

Chain OUTPUT (policy ACCEPT) target  
prot opt source    destination 

在Windows服務器上,檢查Windows防火牆,以確保postgres.exe允許傾聽和/或該端口是開放的。

在Windows客戶端上,檢查是否安裝了第三方「Internet安全性」或防火牆程序。如果只有Windows防火牆在那裏沒問題,那不會是問題。儘管如此,某些第三方防火牆阻止了即將發送的連接,並且可能是問題的根源。

檢查看看您是否可以ping服務器。

如果這沒有幫助,請編輯你的問題補充你錯誤消息和描述的原話,你是如何連接(PSQL,pgAdmin的-III,JDBC,等等)。

一旦你有連接工作,請務必將trust更改回md5並設置用戶密碼。使用trust模式運行的模式非常多:「嘿,任何人都可以訪問我的網絡,如果您願意,可以竊取或銷燬我的數據。」

0

如何嘗試更改pg_hba.conf。 只需將127.0.0.1/32更改爲0.0.0.0/0

# IPv4 local connections: 
host all    all    0.0.0.0/0    md5 
host all    all    46.18.24.0/22   trust 
host all    all    193.106.180.0/22  trust 
host all    all    193.146.230.62/32  trust