我有synology DS 920在家里连接到我的路由器。我安装了portainer(容器管理)并启动了PostgreSQL的容器。从pgAdmin 4我可以看到并访问我的数据库(例如,我可以运行查询SELECT version();并得到答案)。我的问题是从我的本地PC访问。我想使用psycopg 2,但我遇到了一些错误。我想使用psycopg 2,但我在运行时遇到了一些错误。我想使用psycopg
import psycopg2
conn = psycopg2.connect(
host="localhost",
database="Test",
user="***",
password="***"
)
字符串
我尝试使用localhost作为主机,但失败了,因为数据库是在服务器上的容器中,所以不是在我的本地机器上。我试图使用我的服务器的IP,但我得到以下错误消息(与localhost的情况相同的错误消息):
psycopg2.OperationalError:连接到服务器“x.x.x.x”,端口5432失败:连接被拒绝(0x 0000274 D/10061)服务器是否在该主机上运行并接受TCP/IP连接?
应该使用什么主机?使用portainer,我可以访问容器的IP地址(一个容器用于pgAdmin,一个用于portainer,一个用于PostgreSQL)。我尝试了所有三个容器和一个用于PostgreSQL的容器(在端口2665:5432上发布),我得到了相同的错误消息:
psycopg2.OperationalError:连接到服务器“x.x.x.x”,端口5432失败:连接超时(0x 0000274 C/10060)服务器是否在该主机上运行并接受TCP/IP连接?
除了主机,我在哪里可以看到允许访问数据库的用户列表?我应该在postgresql.conf文件中更改什么吗?我正在使用listen_addresses = '*'
1条答案
按热度按时间jpfvwuh41#
经过多次尝试,我发现我需要指定我应该监听的端口(2665而不是默认使用的5432端口)。作为主机,我使用了我服务器的IP地址。