我花了3-4个小时在这件事上,至今仍未找到解决办法。
我可以成功地运行docker容器并从容器bash中使用psql,但是,当我试图从本地机器调用db时,我会继续收到以下错误消息:
error role "postgres" does not exist
我已经尝试过从容器bash中编辑postgresql.conf file中的"listen_addresses“。
我的设置:我正在使用一台macbook -蒙特利12.4
我的停靠者撰写文件:版本: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
当我尝试以下命令时: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中。
发布于 2022-09-13 08:03:37
在组合配置中将POSTGRES_USER=testUser替换为POSTGRES_USER=postgres。还可以使用POSTGRES_PASSWORD中定义的密码。删除旧容器并创建一个新容器。
发布于 2022-09-13 23:30:12
谢谢你们在这方面的帮助。
结果问题是,我也在本地的机器上运行postgres。
所以,一旦我关掉它,我就能连接起来。
我很感激你的时间!
https://stackoverflow.com/questions/73699258
复制相似问题