Docker部署PostgreSQL遇P1000认证失败问题求助
问题解决:Docker PostgreSQL 认证失败(Role "postgres" 不存在)
问题根源
你的docker-compose.yml中,POSTGRES_USER和POSTGRES_PASSWORD的赋值带有前导空格,导致PostgreSQL容器初始化时创建的用户是 postgres(带空格),而非预期的postgres,这直接引发了认证失败。
解决步骤
修正
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"清理旧容器与数据卷
Postgres容器第一次启动时会完成用户/数据库初始化,后续重启不会修改已有配置,因此需要彻底清理旧数据:docker-compose down -v重新启动容器
docker-compose up -d验证连接
使用以下参数重新尝试连接(pgAdmin或Prisma):- 用户名:
postgres - 密码:
1234 - 数据库:
dev - 主机:
localhost - 端口:
5432
- 用户名:
内容的提问来源于stack exchange,提问作者ClubSavage
相关产品推荐
相关产品推荐

