【问题标题】:psql: could not connect to server... Is the server running on host ... and accepting TCP/IP connections on port 5432?psql:无法连接到服务器...服务器是否在主机上运行...并接受端口 5432 上的 TCP/IP 连接?
【发布时间】:2018-06-22 20:17:39
【问题描述】:

我知道这是一个很受欢迎的问题。我已经尝试了类似threads 中建议的所有内容。我正在尝试远程连接到 azure windows server 2012 机器上的 postgresql 数据库。我已经尝试了以下...

postgresql.conf

listen_addresses = '*'

pg_hba.conf

# IPv4 local connections:
host    all             all             0.0.0.0/0            md5

防火墙

新入站规则(防火墙)协议和端口 > 协议类型 > TCP

本地端口 > 5432 远程端口 > 全部

获取远程机器的IP

我从 azure 仪表板复制,也如远程桌面连接顶部所示

来自本地计算机的 CMD

然后从本地机器尝试以下。

psql -U postgres -h 13.xx.xx.xx 

错误消息。

psql:无法连接到服务器:连接超时 (0x0000274C/10060) 服务器是否在主机“13.xx.xx.xx”上运行并接受 端口 5432 上的 TCP/IP 连接?

我不确定还应该做什么。

【问题讨论】:

  • 更改listen_addressespg_hba.conf 设置后,您是否重新启动 Postgres? pg_hba.conf 更改只需要重新加载,但listen_addresses 更改需要重新启动。您可以通过运行select current_setting('listen_addresses'); 验证 Postgres 的更改您可以通过select * from pg_catalog.pg_hba_file_rules(); 检查您的 pg_hba 设置(如果 Azure 使用的是 PG10)
  • 是的,你需要重启 psql。它仍然无法正常工作,似乎是防火墙问题。看我的回答。

标签: postgresql azure tcp azure-virtual-machine


【解决方案1】:

修改配置文件后,需要重启。您可以使用netstat -ant|findstr 5432 进行检查。它应该像下面这样听:

C:\Users\shui>netstat -ant|findstr 5432
  TCP    0.0.0.0:5432           0.0.0.0:0              LISTENING       InHost
  TCP    [::]:5432              [::]:0                 LISTENING       InHost

这似乎是防火墙问题。您需要在 Azure NSG 上打开端口 5432。

我在我的实验室测试,它对我有用。

【讨论】:

  • 感谢善良的天才@Shengbao Shui - MSFT。这是缺失的部分。这对我有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-17
  • 2018-01-20
  • 2017-06-09
  • 1970-01-01
  • 2016-05-30
  • 1970-01-01
相关资源
最近更新 更多