我刚刚浪费了一个小时的时间试图弄清楚为什么 pgAdminIII 无法连接到服务器上localhost
。在尝试配置编辑、启动/停止 postgresql 服务等之后,我终于意识到自上次使用 pgAdminIII 以来只有一件事发生了变化:我连接到了我的 VPN。
我不是网络专家,所以我在这里问:当我主动连接到我的 VPN 提供商时,为什么我无法连接到 PostgreSQL(localhost)?
奖励:我可以使用哪些命令/步骤来准确显示为什么?
编辑:
配置文件:
...
# 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 提供商: ExpressVPN
答案1
我不是网络专家,所以我在这里问:当我主动连接到我的 VPN 提供商时,为什么我无法连接到 PostgreSQL(localhost)?
您已将 PostgreSQL 安装配置为仅允许本地主机连接。
我可以使用什么命令/步骤来准确说明原因?
修改 pg_hba.conf 以包含您的 ExpressVPN IP 地址的条目
主机全部全部 xxx.xxx.xxx.xxx 信任
我不建议您让所有使用 VPN 地址连接到您的服务器的本地用户和数据库用户访问您的数据库。如果您希望这样做,您可以将 IP 地址更改xxx.xxx.xxx.xxx
为 ExpressVPN IP 地址,这样任何用户都可以连接到您的数据库服务器。