【发布时间】:2020-01-21 19:30:39
【问题描述】:
嘿,我正在尝试创建一个 postgresql 数据库容器,我正在使用以下命令运行它:
docker-compose up
在以下撰写文件上:
version: '3.1'
services:
db:
image: postgres
restart: always
environment:
POSTGRES_USERNAME: admin
POSTGRES_PASSWORD: admin
POSTGRES_DB: default_db
ports:
- 54320:5432
但是,当我尝试使用以下 python 代码连接到它时:
import sqlalchemy
engine = sqlalchemy.create_engine('postgres://admin:admin@localhost:54320/default_db')
engine.connect()
我收到以下错误:
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: password authentication failed for user "admin"
有人知道为什么会这样吗?
【问题讨论】:
-
您的 postgres 身份验证是如何配置的?客户端库似乎能够访问 Postgres,但不能进行身份验证。尝试启动容器,然后执行
docker exec -it <postgres-container-id> /bin/sh,并尝试从容器内连接到 Postgres。 -
尝试 POSTGRES_USER 而不是 POSTGRES_USERNAME
标签: python postgresql docker-compose