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

按Docker官方教程部署Django+PostgreSQL提示postgres用户密码不匹配

故障核心原因

从PostgreSQL运行日志可以定位根因:你本地挂载的./data/db目录已经存在之前初始化过的PostgreSQL数据库文件,PostgreSQL只会在首次初始化空数据目录时读取POSTGRES_PASSWORD环境变量设置密码,后续修改该环境变量不会生效,所以你现在配置的密码和旧数据目录里存储的密码不匹配。

排查验证步骤
  • 先停止所有相关容器:执行docker-compose down
  • 检查本地./data/db目录是否存在非空内容:执行ls ./data/db,如果输出有PG_VERSION、pg_wal等文件,说明确实是旧数据目录导致的问题
解决方法

场景1:不需要保留现有数据库数据(测试部署场景推荐)

直接删除旧数据目录后重新启动即可:

# 停止并删除容器
docker-compose down -v
# 删除本地挂载的旧数据目录
sudo rm -rf ./data/db
# 重新启动服务,此时会重新初始化数据库,使用你配置的密码
docker-compose up --build

场景2:需要保留现有数据库数据

你可以手动进入PostgreSQL容器修改用户密码:

  1. 先启动数据库服务:docker-compose up -d db
  2. 进入PostgreSQL容器执行密码修改命令:
docker-compose exec db psql -U postgres
# 进入psql交互终端后执行修改密码命令
ALTER USER postgres PASSWORD 'postgres';
# 退出终端
\q
  1. 重启所有服务:docker-compose restart
额外注意事项
  • 不要随意修改docker-compose中PostgreSQL的密码配置,如果要改必须同时处理旧数据目录或者手动修改数据库内的密码
  • 生产环境不要使用postgres这类弱密码,也不要把密码明文写在配置文件中,建议使用.env文件管理敏感配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 00:09:03