Postgres 和 Docker Compose;密码验证失败,角色 'postgres' 不存在。无法从 pgAdmin4 连接
Postgres and Docker Compose; password authentication fails and role 'postgres' does not exist. Cannot connect from pgAdmin4
我有一个 docker-compose 可以如下所示调出 psql 数据库,目前我正在尝试使用 pgAdmin4 连接到它(不在 docker 容器中)并且能够查看它。我一直无法通过数据库进行身份验证,我不明白为什么。
docker-撰写
version: "3"
services:
# nginx and server also have an override, but not important for this q.
nginx:
ports:
- 1234:80
- 1235:443
server:
build: ./server
ports:
- 3001:3001 # app server port
- 9230:9230 # debugging port
env_file: .env
command: yarn dev
volumes:
# Mirror local code but not node_modules
- /server/node_modules/
- ./server:/server
database:
container_name: column-db
image: 'postgres:latest'
restart: always
ports:
- 5432:5432
environment:
POSTGRES_USER: postgres # The PostgreSQL user (useful to connect to the database)
POSTGRES_PASSWORD: root # The PostgreSQL password (useful to connect to the database)
POSTGRES_DB: postgres # The PostgreSQL default database (automatically created at first launch)
volumes:
- ./db-data/:/var/lib/postgresql/data/
networks:
app-network:
driver: bridge
我做了 docker-compose up
然后检查日志,它说它已准备好连接。我转到 pgAdmin 并输入以下内容:
密码为 root
。然后我得到这个错误:
FATAL: password authentication failed for user "postgres"
我查看了 docker 日志,我看到了
DETAIL: Role "postgres" does not exist.
我不确定我做错了什么,根据文档,应该使用这些规范创建超级用户。我错过了什么吗?一个小时以来,我一直在努力反对这个问题。感谢您的帮助!
@jjanes 在评论中解决了这个问题,我使用了映射卷并且从未正确设置数据库。删除卷,我们就可以开始了。
我有一个 docker-compose 可以如下所示调出 psql 数据库,目前我正在尝试使用 pgAdmin4 连接到它(不在 docker 容器中)并且能够查看它。我一直无法通过数据库进行身份验证,我不明白为什么。
docker-撰写
version: "3"
services:
# nginx and server also have an override, but not important for this q.
nginx:
ports:
- 1234:80
- 1235:443
server:
build: ./server
ports:
- 3001:3001 # app server port
- 9230:9230 # debugging port
env_file: .env
command: yarn dev
volumes:
# Mirror local code but not node_modules
- /server/node_modules/
- ./server:/server
database:
container_name: column-db
image: 'postgres:latest'
restart: always
ports:
- 5432:5432
environment:
POSTGRES_USER: postgres # The PostgreSQL user (useful to connect to the database)
POSTGRES_PASSWORD: root # The PostgreSQL password (useful to connect to the database)
POSTGRES_DB: postgres # The PostgreSQL default database (automatically created at first launch)
volumes:
- ./db-data/:/var/lib/postgresql/data/
networks:
app-network:
driver: bridge
我做了 docker-compose up
然后检查日志,它说它已准备好连接。我转到 pgAdmin 并输入以下内容:
密码为 root
。然后我得到这个错误:
FATAL: password authentication failed for user "postgres"
我查看了 docker 日志,我看到了
DETAIL: Role "postgres" does not exist.
我不确定我做错了什么,根据文档,应该使用这些规范创建超级用户。我错过了什么吗?一个小时以来,我一直在努力反对这个问题。感谢您的帮助!
@jjanes 在评论中解决了这个问题,我使用了映射卷并且从未正确设置数据库。删除卷,我们就可以开始了。