Postgresql服务器远程连接[英] Postgresql server remote connection

本文是小编为大家收集整理的关于Postgresql服务器远程连接的处理方法,想解了Postgresql服务器远程连接的问题怎么解决?Postgresql服务器远程连接问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在尝试在 ubuntu 上设置一个 postgresql 9.1 服务器,用于远程访问数据.我已经正确安装了 postgres,服务器进程正在运行,我正在尝试对其进行配置,以便我可以从局域网外的其他几台计算机通过 Internet 远程访问服务器.

我已经修改了我的 pg_hba.conf:

host    all     all     0.0.0.0     trust

和 postgresql.conf 与:

listen_addresses = '*'
port = 5432

我还修改了我的 iptables 以接受端口 5432 上的连接.

当我尝试在 python 上使用 psycopg2 进行连接时:

conn=psycopg2.connect('host=XX.XX.XX.XX port=5432 dbname=postgres user=myUser password=mypassword')

我收到以下错误:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/psycopg2/__init__.py", line 179, in connect
connection_factory=connection_factory, async=async) 
psycopg2.OperationalError: could not connect to server: Connection refused
Is the server running on host "XX.XX.XX.XX" and accepting
TCP/IP connections on port 5432?

我不确定我是否插入了正确的 IP 地址,并且我很好奇我将如何确定在这里使用什么 IP 地址来连接到我的服务器.我使用了运行 postgres 服务器的计算机的公共 IP,但我不确定这是否正确.还是我还缺少其他步骤?我知道这是一种糟糕的安全方式,但目前我只想建立一个连接.另外我的电脑在路由器后面,那么我该如何专门访问我的服务器呢?

非常感谢任何帮助.

推荐答案

你的pg_hba.conf不应该使用trust!!!trust 表示不需要密码,我认为这不是您想要的.

这是正确的配置

host    all             all             0.0.0.0/0               md5

注意0.0.0.0后面的/0.

完整的pg_hba.conf应该是这样的:-

local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
host    all             all             0.0.0.0/0               md5

请注意,trust 仅适用于 local 连接.即对于在 localhost IP 127.0.0.1 上运行的应用程序,该机器还运行您的 postgresql 服务器.

本文地址:https://www.itbaoku.cn/post/1763969.html