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

如何解决PostgreSQL SCRAM认证要求libpq10及以上版本的连接报错问题

SCRAM认证报错根因

你遇到的报错核心原因是连接PostgreSQL的客户端所依赖的libpq库版本低于10,而PostgreSQL 14默认启用SCRAM-SHA-256密码认证算法,该算法仅在libpq 10及以上版本支持,低版本libpq无法完成认证流程。

解决方案

方案一:升级客户端libpq版本(优先推荐)

根据你使用的连接工具/开发栈选择对应升级方式:

  • Python项目(使用psycopg2连接):升级到2.7及以上版本,执行命令:
    pip install --upgrade psycopg2-binary
  • Java项目(使用JDBC连接):升级PostgreSQL JDBC驱动到42.2.0及以上版本
  • C/C++自研项目:替换项目依赖的libpq库文件为PostgreSQL 10+版本对应的官方客户端库
  • 系统自带psql等客户端连接:升级系统内的PostgreSQL客户端包到10及以上版本

方案二:回退PostgreSQL认证方式(仅临时兼容使用)

如果暂时无法升级客户端,可以调整PostgreSQL服务端配置兼容低版本客户端,注意该方案会降低认证安全性,不建议长期使用:

  1. 打开PostgreSQL数据目录下的pg_hba.conf配置文件,将你所用连接对应的行的认证方式从scram-sha-256修改为md5,示例修改:

    修改前:host all all 0.0.0.0/0 scram-sha-256
    修改后:host all all 0.0.0.0/0 md5

  2. 打开同目录下的postgresql.conf配置文件,修改密码加密规则:
    password_encryption = md5
  3. 重启PostgreSQL服务使配置生效
  4. 重新设置数据库用户密码,执行SQL命令使密码按md5规则加密存储:
    ALTER USER 你的数据库用户名 WITH PASSWORD '你的数据库密码';

注意:md5认证方式存在安全隐患,仅作为临时过渡方案,条件允许请优先升级客户端libpq版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:24:02