他のコンピューターは私の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
私が見つけたコマンドで:
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ではないことがわかります。それらが機能しない場合、問題はマシンにローカルであることがわかります。
うまくいったら、次のステップはネットワークのトラブルシューティングです。ここでtracerouteが役立つ場合があります。また、他のソフトウェアを使用して他の開いているポートに接続し、それが機能することを確認してください。そこから、パケットがドロップされている場所を正確に把握できる場合があります。
PostgreSQLサーバーがファイアウォールの通過を許可されていることを確認します。
サーバーマシンで、
コントロールパネル>システムとセキュリティ> Windowsファイアウォール> Windowsファイアウォールを介したアプリの許可
[許可されたアプリと機能]をスクロールして、[PostgreSQLサーバー]がオンになっていることを確認します。
私は同じ問題に直面しました、それは私のWin FirewallとAntivirusをオフにすることで解決されました
DBサーバー接続をブロックしていた
postgresのファイアウォールにルールを追加します
「コントロールパネル」に移動= >>「Windows Defenderファイアウォール」
次に、[詳細設定]を選択します(主に左側の垂直オプション)。これにより、[ローカルコンピュータにセキュリティが強化されたWindows Defenderファイアウォール]が開きます。
次に、「受信ルール」を選択します。
次に、「新しいルール」をクリックします。 「新しい受信の規則ウィザード」が開きます。
「プログラム」を選択し、「次へ」をクリックします。
Psql.exeのプログラムパスを追加します。私の場合、psql.exeは "C:\ Program Files\PostgreSQL\9.6\bin\psql.exe"にあります。
「場所を許可する」を選択します。
ルールを適用するユーザーのチェックボックスをすべてオンにします。
ルールの適切な名前と説明を入力します。次に、完了をクリックします。
これにより、localhostでpsqlにアクセスするための新しいルールが追加されます。次に、pgAdminを実行するか、cmdを使用してdbにアクセスします。