无法从我的本地 PC 连接到服务器上安装在 portainer 中的 PostgreSQL

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

我家里有 Synology DS920 连接器连接到我的路由器。我安装了 portainer(容器管理)并启动了 PostgreSQL 的容器。从 pgAdmin 4 我可以查看并访问我的数据库(例如我可以运行查询 SELECT version(); 并获得答案)。我的问题是从本地电脑访问。我想使用 psycopg2 但我遇到了一些错误......

import psycopg2

conn = psycopg2.connect(
    host="localhost",
    database="Test",
    user="***",
    password="***"
)

我尝试使用 localhost 作为主机,但失败了,因为数据库位于服务器上的容器中,而不是在我的本地计算机上。 我尝试使用我的服务器的 IP,但收到以下错误消息(与 localhost 的错误消息相同):

psycopg2.OperationalError:连接到“x.x.x.x”处的服务器,端口 5432 失败:连接被拒绝(0x0000274D/10061) 服务器是否在该主机上运行并接受 TCP/IP 连接?

应该使用什么主机?通过 portainer,我可以访问容器 IP 地址(一个容器用于 pgAdmin,一个容器用于 portainer,一个容器用于 PostgreSQL)。我尝试了这三种方法以及 PostgreSQL 中的一种(在端口 2665:5432 上发布),但收到了相同的错误消息:

psycopg2.OperationalError:连接到“x.x.x.x”处的服务器,端口 5432 失败:连接超时(0x0000274C/10060) 服务器是否在该主机上运行并接受 TCP/IP 连接?

除了主机之外,哪里可以看到允许访问数据库的用户列表? postgresql.conf 文件中有什么我应该更改的吗?我在用 监听地址 = '*'

python-3.x postgresql psycopg2 portainer
1个回答
0
投票

经过多次尝试,我发现我需要指定我应该监听的端口(2665,而不是默认使用的 5432 端口)。作为主机,我使用了我的服务器的 IP 地址。

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