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

Windows11下Node.js20+PostgreSQL15.1用pg-native报SCRAM认证错误怎么办?

解决SCRAM认证要求libpq版本10+的问题

问题根源

pg-native依赖系统中安装的libpq库,你的Windows系统里的libpq版本低于10,而PostgreSQL 15默认启用了SCRAM-SHA-256认证机制,旧版libpq不支持该认证方式,所以触发报错。

可行解决办法

1. 更新系统的libpq库并重新编译pg-native

  • 下载与你的PostgreSQL 15版本匹配的Windows安装包,安装时务必勾选libpq组件
  • 把PostgreSQL安装目录下的bin路径(例如C:\Program Files\PostgreSQL\15\bin)移到系统环境变量PATH的最顶端,保证Node优先调用新版libpq
  • 重启终端和项目,重新安装pg-native:
    npm uninstall pg-native
    npm install pg-native --build-from-source
    

2. 改用纯JS版本的pg客户端(最省心)

直接放弃pg-native,使用pg包自带的纯JS客户端,不需要依赖系统libpq,天然支持SCRAM认证:

import { Pool } from 'pg';
const pool = new Pool({ /* 你的数据库配置 */ });
pool.connect();

3. 修改PostgreSQL认证方式(仅临时测试用)

如果只是临时调试,可以修改PostgreSQL的pg_hba.conf文件(通常在C:\Program Files\PostgreSQL\15\data目录下),将对应条目认证方式从scram-sha-256改为md5:

# 找到对应主机/用户的配置行,修改method字段
host    all             all             127.0.0.1/32            md5

修改后重启PostgreSQL服务。注意:md5认证安全性远低于SCRAM,生产环境严禁使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 11:54:58