【发布时间】:2021-11-15 05:19:47
【问题描述】:
我正在通过docker run命令在docker容器上构建postgres服务器,如下(环境参数设置正确)。
docker run \
--name zero2prod \
-e POSTGRES_USER=${DB_USER} \
-e POSTGRES_PASSWORD=${DB_PASSWORD} \
-e POSTGRES_DB=${DB_NAME} \
-p "${DB_PORT}":5432 \
-d postgres \
postgres -N 1000
但是,psql 命令连接服务器失败。我输入了如下命令。
PGPASSWORD="${DB_PASSWORD}" psql -h "localhost" -U "${DB_USER}" -p "${DB_PORT}" -d "postgres"
错误信息是这样的。
psql: error: could not connect to server: FATAL: password authentication failed for user "postgres"
有人知道命令失败的原因吗?
注意:我使用的是 windows 10 机器,docker 环境是使用 Docker Desktop for Windows 安装的。
【问题讨论】:
-
你能从容器日志中验证数据库运行是否正确吗?
-
是的,容器在日志末尾说“数据库系统已准备好接受连接”,我可以从容器的内壳使用 psql 命令连接数据库。
-
我发现当-p选项指示的主机端口和容器端口相同时,psql命令失败。但我不知道为什么...
-
@T.A 如果您已经找到解决方案,请不要将其添加到您的问题中,而是将其写为帖子的答案。它也让其他人更容易找到
-
@st.huber 感谢您的评论。我将答案移至答案部分。
标签: windows postgresql docker psql docker-desktop