![](/img/trans.png)
[英]Can not connect to a postgres database in a docker container from my local machine
[英]cannot access postgres db running docker container from local machine
我已经为此花费了 3-4 个小时,但仍然没有找到解决方案。
我可以成功运行 docker 容器并使用容器 bash 中的 psql,但是,当我尝试从本地计算机调用 db 时,我继续收到以下错误消息:
error role "postgres" does not exist
我已经尝试在容器 bash 的 postgresql.conf 文件中编辑“listen_addresses”
我的设置:我使用的是 macbook - Monterey 12.4
我的 docker 撰写文件:版本:'3.4'
services:
postgres:
image: postgres:latest
ports:
- "5432:5432"
environment:
- POSTGRES_DB=postgres_db
- POSTGRES_USER=testUser
- POSTGRES_PASSWORD=testPW
volumes:
- postgres-data:/var/lib/postgresql/db
但是如果我也通过标准 CLI 命令执行此操作,则会出现此问题,即:
docker run -d -p 5432:5432 --name my-postgres -e POSTGRES_PASSWORD=mysecretpassword postgres
我尝试按照本教程进行操作,但没有成功:[https://betterprogramming.pub/connect-from-local-machine-to-postgresql-docker-container-f785f00461a7][1]
当我尝试这个命令时: psql -h localhost -p 5432 -U postgres -W
它不起作用: psql: error: connection to server at "localhost" (::1), port 5432 failed: FATAL: role "postgres" does not exist
同样作为参考,postgres 中确实存在用户“postgres” - 作为超级用户
在撰写配置POSTGRES_USER=testUser
替换为POSTGRES_USER=postgres
。 还要使用POSTGRES_PASSWORD
中定义的密码。 删除旧容器并创建一个新容器。
感谢大家对此的帮助。
事实证明,问题在于我也在本地机器上运行 postgres。
所以一旦我把它关掉,我就可以连接了。
我很感激你的时间!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.