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

postgres_exporter无法连接现有PostgreSQL数据库的技术求助

解决postgres_exporter连接PostgreSQL时的"unknown authentication response: 10"错误

这个错误pq: unknown authentication response: 10本质是认证方式不兼容导致的——你的现有PostgreSQL实例大概率使用了scram-sha-256认证(新版本PostgreSQL的默认安全设置),但你当前使用的postgres_exporter版本太旧,不支持这种更安全的认证协议。而你用Docker启动的新PG实例要么是旧版本(默认采用md5认证),要么搭配了适配的exporter版本,所以能正常连接。

下面给你两个可行的解决方案,按优先级推荐:

方案一:升级postgres_exporter到支持SCRAM的版本

这是最安全、最适合长期使用的解决方案:

  • 如果是二进制包部署,直接替换为最新稳定版的postgres_exporter二进制文件,重启服务即可。
  • 如果是Docker部署,拉取最新的官方镜像并重启容器:
    docker pull prometheuscommunity/postgres-exporter:latest
    

新版本的postgres_exporter已经完全兼容scram-sha-256认证,升级后无需修改PostgreSQL的任何配置,就能直接正常连接。

方案二:临时修改PostgreSQL的认证方式为MD5(不推荐长期使用)

如果暂时无法升级exporter,可以临时降低PostgreSQL的认证等级来适配旧版exporter,但这会降低数据库的安全性,仅作为临时 workaround:

  1. 确认当前认证配置
    先检查PostgreSQL当前的密码加密方式:

    psql -U postgres -c "SHOW password_encryption;"
    

    同时查看pg_hba.conf配置文件(通常路径为/var/lib/postgresql/<版本号>/main/或/etc/postgresql/<版本号>/main/),找到本地连接对应的条目,确认METHOD字段是否为scram-sha-256。

  2. 修改配置文件

    • 编辑postgresql.conf,将password_encryption的值改为md5
    • 编辑pg_hba.conf,把对应本地连接(比如host all all 127.0.0.1/32)的METHOD改为md5
  3. 重置密码并重启服务
    之前的密码是用SCRAM加密的,需要重新设置为MD5加密格式:

    ALTER USER postgres PASSWORD '你的现有密码';
    

    然后重启PostgreSQL服务:

    sudo systemctl restart postgresql
    

    最后重启postgres_exporter,就能正常连接了。

注意:方案二只是临时过渡方案,长期来看还是建议升级exporter以使用更安全的SCRAM认证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:25:14