我使用 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"
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 }}"
我希望这些有帮助。