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

Docker-Compose+TypeORM环境下PostgreSQL用户botuser密码认证失败求助

PostgreSQL "botuser" 密码认证失败排查方案

针对你遇到的密码认证失败问题,结合错误日志里的scram-sha-256认证提示,按以下步骤排查:

1. 严格核对密码一致性

  • 检查docker-compose.yml中db服务的POSTGRES_PASSWORD,和TypeORM配置文件(如data-source.ts)里的数据库连接密码完全一致,注意大小写、特殊字符(比如$需要在docker-compose里转义为$$)、空格等细节。
  • 确认POSTGRES_USER设置的是botuser,和应用连接配置的用户名对应。

2. 适配PostgreSQL的SCRAM认证

错误日志显示数据库使用scram-sha-256认证,若你的pg客户端版本过低可能不兼容:

  • 升级项目依赖的pg包到最新版:
    npm install pg@latest
    
  • 若调试阶段不想升级,可临时修改数据库认证方式为md5(生产环境不推荐),在docker-compose.yml的db服务环境变量中添加:
    environment:
      POSTGRES_HOST_AUTH_METHOD: md5
    

3. 清理旧数据库持久化数据

如果之前启动过db容器,旧的用户密码可能已经被持久化存储,导致新配置不生效:

  • 停止并删除容器及数据卷:
    docker-compose down -v
    
  • 重新构建并启动服务:
    docker-compose up --build
    
    这会重新初始化数据库,使用新的密码创建botuser。

4. 检查连接配置细节

确认TypeORM连接配置里:

  • host设置为docker-compose中db服务的名称(比如db),而非localhost
  • port保持默认的5432
  • 确认数据库名称POSTGRES_DB和配置里的database字段一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 08:47:35