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

pgAdmin4连接PostgreSQL报SCRAM认证需libpq10以上问题求助

故障原因

报错核心是pgAdmin运行时实际加载的libpq版本低于10,和系统全局安装的libpq-dev版本没有关系。你用Python虚拟环境部署pgAdmin时,虚拟环境内默认安装的psycopg2-binary依赖会捆绑自带旧版本libpq,不会调用系统全局安装的新版库。另外你修改PostgreSQL认证配置后没有重载服务、没有重设用户密码哈希,也会导致md5认证配置不生效。

解决步骤
  • 校验并生效PostgreSQL配置
    先确认两个配置文件的参数修改正确:
    1. 编辑postgresql.conf,确保password_encryption = md5,删除该行开头的注释符#
    2. 编辑pg_hba.conf,将本地IPv4、IPv6连接规则对应的认证METHOD字段值改为md5,删除所有指向scram-sha-256的配置
    3. 执行命令重载数据库配置,无需重启数据库实例:sudo systemctl reload postgresql
  • 重置数据库用户密码
    修改加密方式后,已有用户的密码哈希仍然是SCRAM-SHA-256格式存储的,必须重设密码才会生成对应md5格式的哈希值:
    1. 切换到postgres系统用户:sudo su - postgres
    2. 进入PostgreSQL命令行控制台:psql
    3. 执行密码重置语句,将db_user替换为你实际用来连接的数据库用户名(默认管理员用户为postgres),密码替换为你自己设置的连接密码:
      ALTER USER db_user WITH PASSWORD '你的数据库连接密码';
      
    4. 输入\q退出psql控制台,再输入exit退回普通系统用户
  • 修复虚拟环境内的依赖问题
    这是之前操作遗漏的核心环节:
    1. 激活你用来运行pgAdmin的Python虚拟环境
    2. 卸载捆绑旧libpq的二进制依赖包:pip uninstall -y psycopg2-binary
    3. 安装基于系统本地库编译的psycopg2版本,该版本会直接调用你系统上安装的v14版libpq:pip install psycopg2
      如果执行安装时提示编译错误,先安装系统编译依赖:sudo apt install python3-dev build-essential libpq-dev,之后重新执行安装命令即可。
  • 重启pgAdmin服务
    结束之前运行的pgAdmin进程,在激活的虚拟环境内重新启动pgAdmin,再尝试新建服务器连接即可。
版本校验方式

重新连接前可以在激活的虚拟环境中执行以下命令,确认当前加载的libpq版本符合要求:

import psycopg2
print(psycopg2.__libpq_version__)

返回值大于等于100000即代表libpq版本满足SCRAM认证要求,不会再触发版本报错。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 07:24:36