簡體   English   中英

無法從本地計算機訪問運行 docker 容器的 postgres db

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM