![](/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.