You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署PostgreSQL无法连接DBeaver问题求助

解决Docker PostgreSQL容器与DBeaver的连接问题

问题原因

出现FATAL: No entry in pg_hba.conf for host 192.168.1.15, user user, 'postgres' database, no encryption错误,核心原因有两个:

  1. PostgreSQL容器默认仅监听本地localhost,外部主机无法发起连接
  2. pg_hba.conf中未配置允许192.168.1.15主机以当前方式访问postgres数据库和user用户的规则

解决步骤

1. 修改PostgreSQL监听地址

进入容器终端:

docker exec -it posgre_db bash

编辑postgresql.conf文件(路径:/var/lib/postgresql/data/postgresql.conf):

vi /var/lib/postgresql/data/postgresql.conf

找到listen_addresses配置项,修改为:

listen_addresses = '*'

如果找不到该配置,直接在文件末尾添加上述内容即可。

2. 添加pg_hba.conf访问规则

编辑pg_hba.conf文件:

vi /var/lib/postgresql/data/pg_hba.conf

根据场景选择以下规则之一添加:

  • 测试环境(允许无加密访问):
host    postgres     user     192.168.1.15/32     md5
  • 生产环境(推荐SSL加密):
hostssl    postgres     user     192.168.1.15/32     scram-sha-256

若需允许整个192.168.1.x网段访问,将192.168.1.15/32替换为192.168.1.0/24。

3. 重启容器使配置生效

退出容器终端后,执行重启命令:

docker restart posgre_db

4. 调整DBeaver连接配置

  • 无加密访问场景:保持主机为192.168.1.15(或本地localhost/127.0.0.1),端口5432,用户名user,密码password,数据库postgres即可
  • SSL加密场景:在DBeaver连接设置的SSL选项卡中,勾选「使用SSL」,按需选择证书验证方式

进阶方案(永久生效)

若不想每次创建容器都重复修改配置,可提前准备自定义的postgresql.conf和pg_hba.conf文件,创建容器时挂载:

docker run --name posgre_db \
  -e POSTGRES_USER="user" \
  -e POSTGRES_PASSWORD="password" \
  -p 5432:5432 \
  -v /本地自定义路径/postgresql.conf:/var/lib/postgresql/data/postgresql.conf \
  -v /本地自定义路径/pg_hba.conf:/var/lib/postgresql/data/pg_hba.conf \
  -d postgres:latest

内容的提问来源于stack exchange,提问作者dia05

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 06:50:05