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

无法将PGadmin连接至Docker Compose部署的PostgreSQL容器

解决Docker PostgreSQL外部PGadmin认证失败问题(SCRAM-SHA-256)

核心原因

启用scram-sha-256认证后,外部客户端(如PGadmin)的认证方式与PostgreSQL服务器要求不匹配,或PostgreSQL的远程连接规则未配置为使用SCRAM认证。

解决方案

1. 确保PGadmin支持SCRAM-SHA-256

PGadmin 4.10及以上版本才支持SCRAM-SHA-256认证。如果你的PGadmin版本低于这个版本,直接升级到最新版即可解决基础兼容性问题。

2. 修改PostgreSQL的pg_hba.conf配置

默认的pg_hba.conf可能对远程连接使用md5认证,与你启用的scram-sha-256冲突,需调整:

  • 进入PostgreSQL容器:
    docker exec -it <你的postgres容器名> bash
    
  • 编辑pg_hba.conf文件:
    vi /var/lib/postgresql/data/pg_hba.conf
    
  • 找到远程连接规则行(通常是host all all 0.0.0.0/0 md5),将认证方法改为scram-sha-256:
    host    all             all             0.0.0.0/0            scram-sha-256
    
  • 重启容器使配置生效:
    docker restart <你的postgres容器名>
    

3. 验证PostgreSQL的密码加密配置

确保服务器端的密码加密方式确实是scram-sha-256:

  • 进入容器内的PostgreSQL命令行:
    psql -U postgres
    
  • 查看当前加密设置:
    SHOW password_encryption;
    
  • 如果输出不是scram-sha-256,需修改postgresql.conf:
    vi /var/lib/postgresql/data/postgresql.conf
    
    找到password_encryption项,设置为:
    password_encryption = scram-sha-256
    
  • 重启容器后,重新设置用户密码(旧密码可能是MD5加密,不兼容):
    ALTER USER postgres WITH PASSWORD '你的POSTGRES_PASSWORD';
    

4. 配置PGadmin的认证方法

在PGadmin创建/编辑服务器连接时:

  • 切换到「高级」标签页
  • 将「认证方法」手动选择为SCRAM-SHA-256
  • 保存后重新尝试连接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 15:47:51