Postgresql远程连接

时间:2016-03-25 13:48:16

标签: postgresql

我很难过。我们有一个postgres 9.2数据库,我们已经使用了一段时间。现在我们需要能够从网络外部连接到它。

因此我们设置了外部IP,并测试了我们可以通过telnet从远程主机连接到端口5432。所以这证明网络连接正常,防火墙等都很好。

当我尝试使用连接时:
psql -h db.host.com -d dbname -p 5432 -U user

我回来了psql:服务器意外关闭了连接。

我已经确认了 listen_addresses ='*'在postgresql.conf中设置

在pg_hba.conf中,我们有一行读取(仅用于测试)
主持所有0.0.0.0/0 md5

我已重新加载数据库以验证其是否已接收更改 所以这应该允许来自任何来源的连接。

数据库服务器上的psql版本是9.2.14,客户端上的psql版本是9.2.13。

有任何建议或想法吗?

1 个答案:

答案 0 :(得分:1)

我会尝试一些事情来获取更多信息:

  • 关闭服务器上的postgres日志以查看连接时发生的情况。

  • 运行psql --version以确保它与服务器版本或多或少匹配。 (啊,我看到你已经这样做了,但我会留在这里为后代。)

  • 运行strace psql ....以查看失败前的情况。

对我来说,这仍然是一个网络问题。你正在运行的telnet命令是什么? “外部IP”听起来有点像你在AWS上。设置对VPC的远程访问需要很多步骤。您是否有其他可以从外部访问的服务,这些服务实际上正在运行?

您还可以通过关闭Postgres服务器并使用nc收听5432来进行一些故障排除。然后与telnet联系,看看您是否可以来回发送数据。