Windows

連接到基於 Windows 的 Postgresql 的問題

  • June 17, 2020

其他電腦甚至無法在我的 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?

有任何想法嗎?

以下是我建議的故障排除步驟:

  1. 從本地機器嘗試以下操作。如果它們有效,您就知道問題不在於 PostgreSQL。如果它們不起作用,那麼您知道您的問題是機器本地的。
  • psql -h 本地主機 -p 5433
  • psql -h$$ external ip $$-p 5433
  • 如果後者失敗,請嘗試暫時禁用所有防火牆並重試
  1. 現在,如果可行,下一步就是對網路進行故障排除。Traceroute 在這裡可能會有所幫助。還可以嘗試使用其他軟體連接到任何其他開放埠,並確保其正常工作。從那裡,您可能能夠準確地確定數據包被丟棄的位置。

確保允許 PostgreSQL 伺服器通過防火牆:

在伺服器機器上,轉到

控制面板 > 系統和安全 > Windows 防火牆 > 允許應用程序通過 Windows 防火牆

滾動瀏覽允許的應用程序和功能,確保選中“PostgreSQL 伺服器”。

引用自:https://dba.stackexchange.com/questions/30818