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

Docker部署PostgreSQL后DBeaver及pgAdmin连接认证失败求助

PostgreSQL Docker容器连接密码验证失败问题排查

我通过docker-compose部署了PostgreSQL 15容器,同时搭建了pgAdmin容器,但本地使用DBeaver连接时,始终出现FATAL: password authentication failed for user "postgres"的用户名或密码错误提示。尝试过针对SCRAM认证的调试方案,问题仍未解决。

我的docker-compose.yml配置

version: '3'

services:
  db:
    image: postgres:15
    container_name: postgres
    restart: unless-stopped
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: public
    ports:
      - "5432:5432"
    volumes:
      - postgres_db:/var/lib/postgresql/data

volumes:
  postgres_db:
    driver: local

报错截图

PostgreSQL密码验证失败报错截图

解决方法

  • 清理旧数据卷:PostgreSQL首次启动会初始化数据卷,后续修改环境变量不会覆盖已有用户配置。删除旧数据卷后重启容器:
    docker-compose down -v
    docker-compose up -d
    
  • 排查端口冲突:确认本地5432端口未被其他PostgreSQL实例占用,Linux/macOS用lsof -i :5432,Windows用netstat -ano | findstr :5432检查,冲突则修改端口映射(如"5433:5432")。
  • 验证容器内配置:进入容器直接测试用户名密码:
    docker exec -it postgres psql -U postgres -d public
    
    输入postgres能进入则容器内配置正常,问题在客户端连接设置。
  • 检查DBeaver连接参数:确保DBeaver中主机为localhost,端口为映射端口,用户名postgres,密码postgres,数据库名public,与docker-compose配置完全一致。
  • 强制使用MD5认证(测试用):若客户端不兼容SCRAM认证,可添加环境变量强制MD5(生产环境不推荐):
    在environment块中新增:
    POSTGRES_INITDB_ARGS: "--auth-host=md5"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 22:32:45