Django连接同事PostgreSQL数据库失败:密码认证错误求助
Django连接PostgreSQL密码认证失败解决方案
核对Django数据库配置参数
打开项目根目录的settings.py,定位到DATABASES配置段,逐一确认以下信息与同事提供的凭据完全匹配:USER:必须是guizo(PostgreSQL用户名区分大小写,注意不要写错)PASSWORD:检查是否存在拼写错误、多余空格,特殊字符是否未转义HOST:确认是localhost,若数据库部署在其他机器,替换为对应IP或域名PORT:确保是5432,若数据库端口已修改,同步更新此处配置
直接验证PostgreSQL本地连接
跳过Django,用psql命令行测试连接,排查数据库端问题:psql -U guizo -h localhost -p 5432输入同事提供的密码后如果同样报错:
- 联系同事确认密码有效性,以及该用户是否拥有本地连接权限
- 检查PostgreSQL的
pg_hba.conf配置文件(常见路径如/var/lib/postgresql/<版本号>/main/),确认本地连接的认证方式为md5或scram-sha-256(而非peer或ident,这两种方式会跳过密码验证) - 修改
pg_hba.conf后重启PostgreSQL服务生效:sudo systemctl restart postgresql
检查环境变量配置(若使用)
如果你通过环境变量传递数据库密码:- 在终端打印变量值确认是否正确设置:
echo $DATABASE_PASSWORD - 确认
settings.py中正确读取了该环境变量,例如:PASSWORD = os.environ.get('DATABASE_PASSWORD')
- 在终端打印变量值确认是否正确设置:
清理缓存并重启服务
尝试清理Django缓存,避免旧配置残留:python manage.py clearcache完全关闭并重启Django开发服务器
内容的提问来源于stack exchange,提问作者Hubert Rykała
相关产品推荐
相关产品推荐

