Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql远程连接_Postgresql - Fatal编程技术网

Postgresql远程连接

Postgresql远程连接,postgresql,Postgresql,我被难住了。我们有一个Postgres9.2数据库,我们已经使用了一段时间。现在我们需要能够从网络外部连接到它 因此,我们设置了一个外部IP,并测试了我们可以通过telnet从远程主机连接到端口5432。这证明网络连接正常,防火墙等都很好 当我尝试使用连接时: psql-hdb.host.com-d dbname-p5432-U用户 我返回psql:服务器意外关闭了连接 我已经证实了这一点 listen_addresses='*'在postgresql.conf中设置 在pg_hba.conf中

我被难住了。我们有一个Postgres9.2数据库,我们已经使用了一段时间。现在我们需要能够从网络外部连接到它

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

当我尝试使用连接时:
psql-hdb.host.com-d dbname-p5432-U用户

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

我已经证实了这一点
listen_addresses='*'在postgresql.conf中设置

在pg_hba.conf中,我们有一行内容是(仅用于测试)
托管所有0.0.0.0/0 md5

我已经重新加载了数据库,以验证它是否接收到了更改。
因此,这应该允许来自任何源的连接

DB服务器上的psql版本为9.2.14,客户端上的psql版本为9.2.13


有什么建议或想法吗?

我会尝试一些方法来获取更多信息:

  • 跟踪服务器上的postgres日志,查看连接时发生的情况

  • 运行
    psql--version
    ,确保它或多或少与服务器版本匹配。(啊,我看你已经这么做了,但我会把它留给后人。)

  • 运行
    strace psql…
    查看故障发生前的情况

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


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

能否通过tcp/ip本地连接到postgres服务器?尝试用您正在连接的实际ip替换
0.0.0.0/0
。是的,我可以在本地连接,我也尝试过更改ip,我们从主机连接的ip开始,但这导致了相同的行为。Paul,感谢您的建议。我已经做了扫描,并验证了版本。你是对的,当时正在尝试从AWS连接。事实证明,这是我在负载平衡器中使用的一个irule,它只允许从AWS发布的EC-2IP范围进行访问。当我禁用irule时,我可以立即连接。所以这一定是irule逻辑,因为我验证了我的EC2实例使用的公共IP,它确实通过CIDR通知列在irule中。很高兴你把它整理好了!