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

Django迁移至RDS PostgreSQL时出现用户密码认证失败错误

解决Django连接AWS RDS PostgreSQL时USER参数未读取的问题
  • 避免系统环境变量冲突
    系统默认存在USER环境变量(对应当前登录用户名),如果你.env里用了USER作为数据库用户名的变量名,Django会优先读取系统的USER值,而非你自定义的。把.env里的用户名变量名改成DB_USER,然后在settings.py里修改引用为os.getenv('DB_USER')。

  • 确认.env加载逻辑正确
    确保你通过python-dotenv正确加载.env文件,在settings.py最顶部添加:

    from dotenv import load_dotenv
    import os
    
    load_dotenv()  # 这行必须放在读取环境变量的代码之前
    

    未安装python-dotenv的话先执行:pip install python-dotenv

  • 排查环境变量实际读取值
    在settings.py中添加打印代码,验证读取到的数据库用户名:

    print("当前读取的DB用户:", os.getenv('DB_USER'))  # 对应你修改后的变量名
    

    执行python3 manage.py migrate前查看输出,确认是否为你在.env中配置的RDS用户名。

  • 检查DATABASES配置完整性
    确保settings.py中的数据库配置正确引用修改后的变量,示例:

    DATABASES = {
        'default': {
            'ENGINE': os.getenv('DB_ENGINE'),
            'NAME': 'postgres',
            'USER': os.getenv('DB_USER'),
            'PASSWORD': os.getenv('DB_PASSWORD'),
            'HOST': os.getenv('DB_HOST'),
            'PORT': os.getenv('DB_PORT'),
        }
    }
    
  • 清除虚拟环境缓存
    退出虚拟环境,删除项目目录下的pyc文件:find . -name "*.pyc" -delete,重新激活虚拟环境后再执行迁移命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 10:20:26