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

Docker部署PostgreSQL与pgAdmin后密码认证失败问题求助

PostgreSQL认证失败问题排查与解决

问题根源

你使用的psdb-volume持久化卷已存在,PostgreSQL仅在首次初始化数据库时读取POSTGRES_PASSWORD环境变量,后续修改该变量不会覆盖卷中已存储的密码哈希值。当你输入新密码时,无法与卷中留存的SCRAM哈希匹配,导致认证失败。日志中提到的scram-sha-256是新版本PostgreSQL的默认认证方式,这本身无问题,核心矛盾是密码哈希不匹配。

解决方案

方案1:重置卷(快速解决,适用于无重要数据场景)

  1. 停止并移除容器:
docker-compose down
  1. 删除关联的持久化卷:
docker-compose down -v
  1. 重新启动容器:
docker-compose up -d

容器会重新初始化数据库,使用当前docker-compose.yaml中的密码配置。

方案2:修改现有数据库密码(保留数据)

  1. 进入运行中的PostgreSQL容器:
docker exec -it postgresql bash
  1. 切换至postgres用户:
su - postgres
  1. 登录PostgreSQL命令行:
psql
  1. 更新postgres用户密码(替换为你的目标密码):
ALTER USER postgres WITH PASSWORD 'xxxxxxxxxx';
  1. 退出命令行与容器,使用新密码重新连接即可。

方案3:检查pgAdmin连接参数

确保pgAdmin的连接配置正确:

  • 主机:使用容器固定IP172.21.0.2,或直接用服务名pgsql(同Docker网络内可直接解析)
  • 端口:填写容器内部端口5432(而非宿主机映射的5433,因为pgAdmin与PostgreSQL在同一网络,无需走宿主机端口)
  • 用户名:postgres
  • 密码:与docker-compose.yaml中POSTGRES_PASSWORD完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 18:29:59