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

Docker部署PostgreSQL遇P1000认证失败问题求助

问题解决:Docker PostgreSQL 认证失败(Role "postgres" 不存在)

问题根源

你的docker-compose.yml中,POSTGRES_USER和POSTGRES_PASSWORD的赋值带有前导空格,导致PostgreSQL容器初始化时创建的用户是 postgres(带空格),而非预期的postgres,这直接引发了认证失败。

解决步骤

  1. 修正docker-compose.yml配置
    去掉环境变量赋值后的多余空格,修改后内容如下:

    services:
      dev-db:
        container_name: pg_container
        image: postgres:latest
        restart: always
        ports:
          - 5432:5432
        environment:
          - POSTGRES_USER=postgres
          - POSTGRES_PASSWORD=1234
          - POSTGRES_DB=dev
        
      pgadmin:
        container_name: pgadmin4_container
        image: dpage/pgadmin4
        restart: always
        environment:
          PGADMIN_DEFAULT_EMAIL: admin@admin.com
          PGADMIN_DEFAULT_PASSWORD: root
        ports:
          - "5050:80"
    
  2. 清理旧容器与数据卷
    Postgres容器第一次启动时会完成用户/数据库初始化,后续重启不会修改已有配置,因此需要彻底清理旧数据:

    docker-compose down -v
    
  3. 重新启动容器

    docker-compose up -d
    
  4. 验证连接
    使用以下参数重新尝试连接(pgAdmin或Prisma):

    • 用户名:postgres
    • 密码:1234
    • 数据库:dev
    • 主机:localhost
    • 端口:5432

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 05:32:06