gpt4 book ai didi

postgresql - 带有 docker compose 的 postgres 给出 FATAL : role "root" does not exist error

转载 作者:行者123 更新时间:2023-12-03 13:31:38 25 4
gpt4 key购买 nike

我正在尝试在带有 docker 桌面的本地 Windows 机器上使用 postgres 创建一个简单的演示。
这是我的 yaml docker compose 文件,名为 img.yaml :

version: '3.6'

services:

postgres-demo:
image: postgres:11.5-alpine
container_name: postgres-demo
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=Welcome
- POSTGRES_DB=conference_app
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5
ports:
- 5432:5432
volumes:
- .:/var/lib/my_data
restart: always


我正在使用以下命令运行它: docker-compose -f img.yaml up并得到以下输出:
Starting postgres-demo ... done
Attaching to postgres-demo
postgres-demo | 2020-02-12 17:07:46.487 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
postgres-demo | 2020-02-12 17:07:46.487 UTC [1] LOG: listening on IPv6 address "::", port 5432
postgres-demo | 2020-02-12 17:07:46.508 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
postgres-demo | 2020-02-12 17:07:46.543 UTC [18] LOG: database system was shut down at 2020-02-12 17:07:10 UTC
postgres-demo | 2020-02-12 17:07:46.556 UTC [1] LOG: database system is ready to accept connections

然后,使用以下命令将 bash 打开到容器中: docker exec -it d47056217a97 bash我想查看容器中的数据库,所以我在 bash 中运行命令: psql \dt并得到错误: psql: FATAL: role "root" does not exist .
尝试使用命令创建数据库: psql> create database conference_app;给出错误: psql: FATAL: role "conference_app" does not exist .
我很困惑。我究竟做错了什么?我的 yaml 缺少什么吗?

最佳答案

如果不指定 PGUSER环境变量,然后是 psql将假定您想使用当前操作系统用户作为您的数据库用户名。在这种情况下,您使用的是 root作为您的操作系统用户,您将尝试以 root 身份登录,但该用户在数据库中不存在。
您需要调用 psql -U postgres , 或 su - Postgres第一的
另见postgresql documentation

关于postgresql - 带有 docker compose 的 postgres 给出 FATAL : role "root" does not exist error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60193781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com