【发布时间】:2021-10-25 12:59:31
【问题描述】:
我正在使用 docker 来启动一个 postgres 数据库:
version: '3.8'
services:
postgres:
image: postgres:13
restart: always
environment:
POSTGRES_USER: db_user
POSTGRES_PASSWORD: db_password
volumes:
- postgres:/var/lib/postgresql/data
ports:
- '5432:5432'
volumes:
postgres:
在我的/.env 文件中,我有:
DATABASE_URL="postgresql://db_user:db_password@localhost:5432/college_db?schema=public"
我启动docker:
PS C:\Users\alucardu\Documents\projects\**-react> docker-compose up -d
Starting **-react_postgres_1 ... done
检查服务器是否正在运行:
PS C:\Users\alucardu\Documents\projects\**-react> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e0f9233ce34b postgres:13 "docker-entrypoint.s…" 2 minutes ago Up 33 seconds 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp **-react_postgres_1
但是当我运行 Prisma 迁移时,我得到一个身份验证错误:
PS C:\Users\alucardu\Documents\projects\movieseat-react> npx prisma migrate dev --name "init"
Environment variables loaded from .env
Prisma schema loaded from prisma\schema.prisma
Datasource "db": PostgreSQL database "college_db", schema "public" at "localhost:5432"
Error: P1000: Authentication failed against database server at `localhost`, the provided database credentials for `db_user` are not valid.
Please make sure to provide valid database credentials for the database server at `localhost`.
为什么 Prisma 不匹配集合 db_user 和 db_password 到在 docker yml 中创建的环境变量?
//编辑。
我添加了一个college_db 数据库和一个名为db_user 的超级用户,并使其成为college_db 的所有者:
但我仍然遇到同样的错误。
【问题讨论】:
-
问题可能是因为主机解析。您是否尝试过
127.0.0.1而不是 localhost ? -
P1000: Authentication failed against database server at127.0.0.1, the provided database credentials fordb_user` 无效。`,太糟糕了没有效果。
标签: docker docker-compose prisma