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

psql连接PostgreSQL报错:SCRAM认证需libpq 10+的解决步骤

解决WSL2 Ubuntu中psql因SCRAM认证版本不兼容的问题

先确认问题根源

执行命令 psql --version,查看当前psql版本。如果版本低于10,就是因为旧版本不支持SCRAM认证导致的错误。

方案一:升级psql客户端(推荐,更安全)

Ubuntu默认源的psql版本可能偏旧,直接用PostgreSQL官方源升级:

  • 导入官方密钥:
    curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-archive-keyring.gpg >/dev/null
    
  • 添加官方软件源:
    echo "deb [signed-by=/usr/share/keyrings/postgresql-archive-keyring.gpg] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
    
  • 更新源并安装新版客户端:
    sudo apt update
    sudo apt install postgresql-client-16  # 可替换为10及以上的任意版本,推荐选最新稳定版
    
  • 再次执行 psql --version 确认版本≥10,之后重新用 psql -U <username> -W 连接测试即可。

方案二:临时修改PostgreSQL认证方式(仅应急,安全性较低)

如果暂时没法升级客户端,可临时把认证方式改成旧的md5:

  1. 找到PostgreSQL的pg_hba.conf配置文件:
    • 若PostgreSQL在WSL里,路径一般是/etc/postgresql/<你的postgres版本>/main/pg_hba.conf
    • 若在Windows本地,路径在PostgreSQL安装目录的data文件夹下
  2. 找到本地连接的配置行,把scram-sha-256替换成md5:
    # 修改前
    local   all             all                                     scram-sha-256
    # 修改后
    local   all             all                                     md5
    
  3. 重启PostgreSQL服务:
    • WSL里执行 sudo systemctl restart postgresql
    • Windows里在「服务」中找到PostgreSQL服务重启
  4. 重新用psql连接测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 15:03:17