Docker 中的 Postgresql 如何工作? psql: FATAL: 用户 xy 的密码验证失败
How does Postgresql inside Docker work? psql: FATAL: password authentication failed for user xy
我用 .yml 创建了我的应用程序
services:
db:
image: postgres:11-alpine
environment:
POSTGRES_DB: wiki
POSTGRES_PASSWORD: quantoxrocks
POSTGRES_USER: wikijs
logging:
driver: "none"
restart: unless-stopped
volumes:
- db-data:/var/lib/postgresql/data
wiki:
image: ghcr.io/requarks/wiki:2
depends_on:
- db
environment:
DB_TYPE: postgres
DB_HOST: db
DB_PORT: 5432
DB_USER: wikijs
DB_PASS: quantoxrocks
DB_NAME: wiki
restart: unless-stopped
ports:
- "3000:3000"
webserver:
image: nginx:alpine
restart: unless-stopped
tty: true
ports:
- "443:443"
- "80:80"
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
- ./ssl:/etc/nginx/ssl
volumes:
db-data:
我登录了我的数据库容器并想要创建数据库。我已经尝试了至少 10 次,我确定密码来自上面的 docker-compose.yml 文件。没用。
docker exec -it wiki_db_1 sh
下一个
psql -h wiki_db_1 -U wikijs
Password for user wikijs:
psql: FATAL: password authentication failed for user "wikijs"
为什么?我如何查看更多日志?
Postgres 的环境变量仅在容器启动时没有数据库存在的情况下使用。
您有一个 /var/lib/postgresql/data
的卷映射,并且您可能已经有一个数据库,它是使用与环境变量值不同的值创建的。
如果现有数据库中没有任何重要数据,您可以删除该卷,Postgres 将使用正确的 username/password.
创建一个新数据库
我用 .yml 创建了我的应用程序
services:
db:
image: postgres:11-alpine
environment:
POSTGRES_DB: wiki
POSTGRES_PASSWORD: quantoxrocks
POSTGRES_USER: wikijs
logging:
driver: "none"
restart: unless-stopped
volumes:
- db-data:/var/lib/postgresql/data
wiki:
image: ghcr.io/requarks/wiki:2
depends_on:
- db
environment:
DB_TYPE: postgres
DB_HOST: db
DB_PORT: 5432
DB_USER: wikijs
DB_PASS: quantoxrocks
DB_NAME: wiki
restart: unless-stopped
ports:
- "3000:3000"
webserver:
image: nginx:alpine
restart: unless-stopped
tty: true
ports:
- "443:443"
- "80:80"
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
- ./ssl:/etc/nginx/ssl
volumes:
db-data:
我登录了我的数据库容器并想要创建数据库。我已经尝试了至少 10 次,我确定密码来自上面的 docker-compose.yml 文件。没用。
docker exec -it wiki_db_1 sh
下一个
psql -h wiki_db_1 -U wikijs
Password for user wikijs:
psql: FATAL: password authentication failed for user "wikijs"
为什么?我如何查看更多日志?
Postgres 的环境变量仅在容器启动时没有数据库存在的情况下使用。
您有一个 /var/lib/postgresql/data
的卷映射,并且您可能已经有一个数据库,它是使用与环境变量值不同的值创建的。
如果现有数据库中没有任何重要数据,您可以删除该卷,Postgres 将使用正确的 username/password.
创建一个新数据库