如何连接同一局域网内其他电脑上运行的PSQL数据库
问题根因
你现在的核心问题有3个:
- 连接地址使用错误:127.0.0.0/8段全部属于本地回环地址,在任意设备上访问该段IP,都会直接指向设备自身,不会向外发送到局域网。所以你在电脑2上输入127.0.0.5,自然只会连接到电脑2本地的PostgreSQL服务。
- pg_hba.conf配置未开放局域网访问权限:你当前配置里的IPv4规则仅允许127.0.0.5这个回环地址访问,根本没有放行局域网其他设备的IP段。
- 未配置PostgreSQL的外网监听规则:默认PostgreSQL仅监听本地回环地址,即使改了上述配置,外部设备也找不到电脑1上的服务。
解决步骤
- 第一步:获取电脑1的局域网IP
Windows系统在电脑1上执行ipconfig,Linux/macOS系统执行ip addr,找到当前连接的WiFi/以太网对应的IPv4地址,通常格式为192.168.x.x或10.x.x.x,假设你拿到的地址是192.168.3.15。 - 第二步:修改电脑1上的postgresql.conf配置
找到PostgreSQL安装目录下的postgresql.conf文件,找到listen_addresses配置项,修改为:listen_addresses = '*' # 表示监听所有网卡地址,也可以直接写电脑1的局域网IP - 第三步:修改电脑1上的pg_hba.conf配置
在pg_hba.conf的IPv4规则段新增一行,放行你的局域网段,比如你的局域网IP段是192.168.3.0/24,就添加:
临时测试可以写host all all 192.168.3.0/24 scram-sha-2560.0.0.0/0放行所有IP,生产环境禁止使用该配置,会有安全风险。 - 第四步:重启电脑1的PostgreSQL服务,让配置生效
- 第五步:配置电脑1的防火墙入站规则,放行PostgreSQL默认使用的5432端口
- 第六步:在电脑2上执行连接命令,注意替换成你电脑1的实际局域网IP:
psql -h 192.168.3.15 -U postgres
内容的提问来源于stack exchange,提问作者momomo
相关产品推荐
相关产品推荐

