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

MWAA Airflow连接PostgreSQL时触发SCRAM认证错误的解决方案咨询

MWAA Airflow连接PostgreSQL时触发SCRAM认证错误的解决方案咨询

我来帮你分析这个问题并给出可行的解决方案——你遇到的错误核心原因很明确:MWAA环境自带的libpq版本(9.2.24)太低,不支持PostgreSQL的SCRAM认证;虽然你的psycopg2版本(2.9.5)本身是支持SCRAM的,但它依赖底层系统的libpq库,所以才会触发这个报错。下面是几种可以尝试的解决办法:

  • 使用psycopg2-binary替代官方psycopg2
    这是最推荐的方案,因为psycopg2-binary包自带了独立的libpq库,完全不依赖MWAA系统自带的旧版本。具体操作步骤:

    1. 在你的MWAA依赖的requirements.txt文件中,移除原来的psycopg2==2.9.5,替换成psycopg2-binary==2.9.5
    2. 将更新后的requirements.txt上传到MWAA配置指定的S3依赖存储桶中
    3. 进入AWS控制台的MWAA管理页面,找到你的环境,触发「更新依赖」操作,等待依赖安装完成后重启Airflow调度器和Worker
      完成后,你的DAG里使用的psycopg2就会调用自带的高版本libpq,自然就能支持SCRAM认证了。
  • 临时调整PostgreSQL的认证方式(不推荐生产环境)
    如果你有权限修改目标PostgreSQL实例的配置,可以临时把对应用户的认证方式从scram-sha-256改为md5:

    1. 修改PostgreSQL的pg_hba.conf文件,将目标用户/数据库对应的认证方法改为md5
    2. 重启PostgreSQL服务使配置生效
    3. 确保你的数据库用户的密码是用MD5哈希存储的(如果之前是SCRAM哈希格式,可能需要重新设置密码)
      这个方法的缺点是降低了认证的安全性,只适合测试或者非敏感环境临时使用。
  • 自定义MWAA运行环境镜像(进阶方案)
    如果你需要完全控制环境依赖,可以使用AWS MWAA的自定义镜像功能:

    1. 基于MWAA官方提供的Airflow 2.4.3基础镜像,构建自己的自定义镜像,在镜像中升级libpq到10+版本,或者直接安装psycopg2-binary
    2. 将构建好的镜像上传到AWS ECR容器仓库
    3. 在MWAA环境配置中切换使用自定义镜像
      这个方案适合有容器镜像构建经验的用户,优点是可以完全定制环境,但操作相对复杂,需要持续维护镜像版本。

备注:内容来源于stack exchange,提问作者RagePwn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 14:43:09