Postgres无法在Azure中的Windows Server 2016上启动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Postgres无法在Azure中的Windows Server 2016上启动相关的知识,希望对你有一定的参考价值。

我在Azure VM上的Windows Server 2016上启动Postgres 9.6.6时遇到问题。

当我尝试启动Postgres时,它会生成一个包含以下内容的日志文件:

LOG:  could not bind IPv6 socket: Permission denied
HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
LOG:  could not bind IPv4 socket: Permission denied
HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
WARNING:  could not create listen socket for "localhost"
FATAL:  could not create any TCP/IP sockets
LOG:  database system is shut down

它是一个全新的VM,我修改了postgresql.conf和listen_addresses以包含127.0.0.1但我仍然得到相同的绑定错误。

如果我在VM上运行nslookup,我收到以下内容;

Server: Unknown
Address:  148.43.119.15
*** UnKnown can't find localhost: Non-existent domain

所以我认为查找因localhost而失败的事实可能导致问题。我修改了VM上的hosts文件:

127.0.0.1       localhost
:1             localhost

但是同样的错误正在发生,所以我认为我没有在网络方面设置但不确定在哪里看。

答案

如果我的理解是正确的,148.43.119.15是你的VM的公共IP。你无法在IP上听postgresql,如果我跟你设置类似,我会得到相同的结果。

enter image description here

请修改postgreqls.conf

listen_addresses = '*'

对于Azure VM,如果要使用Public IP访问postgresql,则需要Azure NSG和Windows防火墙上的开放端口。

enter image description here

以上是关于Postgres无法在Azure中的Windows Server 2016上启动的主要内容,如果未能解决你的问题,请参考以下文章

忘记 Postgres 上的管理员密码(Windows 安装),无法重置

Windows Azure 虚拟机,Server 2012,无法激活 0xC004F074

postgres 9.3 windows的空密码登录失败

azure terraform 将 azure 文件共享附加到 Windows 机器

azure VPN无法在Windows Server 2012上运行

无法通过 Spring Boot 将 Docker Desktop Kubernetes (Windows) 服务连接到本地 Postgres db