pgAdminIII が のサーバーに接続できない理由を解明しようとして、人生の 1 時間を無駄にしましたlocalhost
。構成の編集、postgresql サービスの起動/停止などを試みた後、最後に pgAdminIII を使用したときから 1 つだけ変更があったことにようやく気付きました。VPN に接続していたのです。
私はネットワークの専門家ではないので、ここで質問します。VPN プロバイダーにアクティブに接続しているときに、なぜ PostgreSQL (localhost) に接続できないのでしょうか?
ボーナス:正確に表示するにはどのようなコマンド/手順を使用すればよいですか?なぜ?
編集:
pg_hba.conf:
...
# CAUTION: Configuring the system for local "trust" authentication
# allows any local user to connect as any PostgreSQL user, including
# the database superuser. If you do not trust all your local users,
# use another authentication method.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication chris trust
#host replication chris 127.0.0.1/32 trust
#host replication chris ::1/128 trust
OS Xバージョン: 10.12.6 (シエラ)
PostgreSQL バージョン: 9.6.3
VPNプロバイダー: エクスプレスVPN
答え1
私はネットワークの専門家ではないので、ここで質問します。VPN プロバイダーにアクティブに接続しているときに、なぜ PostgreSQL (localhost) に接続できないのでしょうか?
PostgreSQL インストールは、localhost 接続のみを許可するように構成されています。
正確な理由を示すには、どのようなコマンド/手順を使用すればよいでしょうか?
pg_hba.conf を変更して、ExpressVPN IP アドレスのエントリを追加します。
ホストすべてxxx.xxx.xxx.xxx信頼
VPN アドレスを使用してサーバーに接続するすべてのローカル ユーザーとデータベース ユーザーにデータベースへのアクセスを許可することはお勧めしません。そのようにしたい場合は、をxxx.xxx.xxx.xxx
ExpressVPN IP アドレスに変更すると、すべてのユーザーがデータベース サーバーに接続できるようになります。