Windows
連接到基於 Windows 的 Postgresql 的問題
其他電腦甚至無法在我的 Windows 7 機器上找到正在執行的 Postgresql 9.1。本地連接當然工作得很好。
在我的 pg_hba.conf 我有:
#office subnets host all all 192.168.##.0/24 md5 host all all 192.168.##.0/24 md5
在 postgresql.conf 我有(是的,埠 5433 是故意的):
listen_addresses = '*' # what IP address(es) to listen on; # comma-separated list of addresses; # defaults to 'localhost', '*' = all # (change requires restart) port = 5433 # (change requires restart)
netstat -a -b
在cmd 中執行後,我發現:Can not obtain ownership information TCP 0.0.0.0:5433 XXXXX-PC:0 LISTENING
哎呀,我什至做了一個防火牆例外:
Protocols and Ports: Local port: Specific Ports, 5433 Remote port: All Ports Scope: Any IP Address Advanced: Profiles: Private, Public Programs and Services: Apply to this service: postgresql-x64-9.1
來自 pgAdmin 的典型反應總是令人恐懼的:
Server doesn't listen could not connect to server: Connection timed out (0x0000274C/10060) Is the server running on host "...." and accepting TCP/IP connections on port 5433?
有任何想法嗎?
以下是我建議的故障排除步驟:
- 從本地機器嘗試以下操作。如果它們有效,您就知道問題不在於 PostgreSQL。如果它們不起作用,那麼您知道您的問題是機器本地的。
- psql -h 本地主機 -p 5433
- psql -h$$ external ip $$-p 5433
- 如果後者失敗,請嘗試暫時禁用所有防火牆並重試
- 現在,如果可行,下一步就是對網路進行故障排除。Traceroute 在這裡可能會有所幫助。還可以嘗試使用其他軟體連接到任何其他開放埠,並確保其正常工作。從那裡,您可能能夠準確地確定數據包被丟棄的位置。
確保允許 PostgreSQL 伺服器通過防火牆:
在伺服器機器上,轉到
控制面板 > 系統和安全 > Windows 防火牆 > 允許應用程序通過 Windows 防火牆
滾動瀏覽允許的應用程序和功能,確保選中“PostgreSQL 伺服器”。