无法通过我的计算机上安装的 pgAdmin 连接到 postgres db

问题描述 投票:0回答:1

我使用 docker-compose.yaml 数据库和 pgAdmin 安装。 我在 http://localhost:5050/browser/

上运行 pgadmin

我连接到数据库,一切正常。

但是当我尝试从计算机上安装的 gpAdmin 连接到数据库(复制主机、端口用户名、密码)时,出现错误

无法连接到服务器。

一切都安装在一台机器上。 我用的是windows。

version: "3.8"
services:
  db:
    container_name: postgres_container
    image: postgres
    restart: always
    environment:
      POSTGRES_USER: root
      POSTGRES_PASSWORD: root
      POSTGRES_DB: test_db
    ports:
      - "5432:5432"
  pgadmin:
    container_name: pgadmin4_container
    image: dpage/pgadmin4
    restart: always
    environment:
      PGADMIN_DEFAULT_EMAIL: [email protected]
      PGADMIN_DEFAULT_PASSWORD: root
    ports:
      - "5050:80"
postgresql docker docker-compose pgadmin
1个回答
0
投票

Unable to connect server
错误很可能是因为您在 compose.yaml 文件中定义的环境变量和添加新服务器时在
pgadmin
处输入的值彼此不匹配。 (如果容器已启动并正在运行,并连接到同一网络。请先确保这些步骤。)

还建议使用

postgredb
密码作为
secret
值。对于基本设置,请在
db/password.txt
文件的同一目录中创建一个
compose.yaml
文件,并在其中添加单行密码。

compose.yaml

services:
  db:
    image: postgres
    container_name: postgres-c
    restart: always
    user: postgres
    secrets:
      - db-password
    volumes:
      - db-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=example
      - POSTGRES_PASSWORD_FILE=/run/secrets/db-password
      - POSTGRES_HOST_AUTH_METHOD=md5 
      - PGDATA=/var/lib/postgresql/data/pgdata 
    expose:
      - 5432
    ports:
      - "5432:5432"
    healthcheck:
      test: [ "CMD", "pg_isready" ]
      interval: 10s
      timeout: 5s
      retries: 5
    networks:
      - pg-network
  pgadmin: 
    image: dpage/pgadmin4
    container_name: pgadmin-c
    restart: always
    environment:
      - [email protected]
      - PGADMIN_DEFAULT_PASSWORD=yourpassword
    ports:
      - 8080:80
    networks: 
      - pg-network
volumes:
  db-data:
secrets:
  db-password:
    file: db/password.txt
networks:
  pg-network:
    driver: bridge
docker compose up --build

导航至

localhost:8080
找到
PG Admin
并添加新服务器。

PgAdmin
-
Add New Server

  • General - Name
    my-server
  • Connection - Hostname / address
    :
    db
    db
    服务于
    compose
  • Connection - port
    5432
    PostgreSQL port
    处的暴露和默认
    compose
  • Connection - Maintanance database
    example
    db name
    位于
    compose
  • Connection - Username
    postgres
    db user
    位于
    compose
  • Connection - Password
    Resample-Landlady5-Bottle
    (用于
    container

如果这没有帮助,可能是因为网络问题。确保容器首先运行。

docker ps

检查网络后,应该在

docker compose up --build

之后创建它
docker network ls

然后,检查容器的网络:

docker inspect postgres-c -f "{{json .NetworkSettings.Networks }}"
docker inspect pgadmin-c -f "{{json .NetworkSettings.Networks }}"

我希望这些有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.