从 Windows 命令行启动 postgres 9.4 服务器

从 Windows 命令行启动 postgres 9.4 服务器

我尝试从 Windows 命令行启动 postgres 服务器但是它总是失败并出现相同的错误:

2015-04-14 10:25:19 GST LOG:  could not bind IPv6 socket: No error

2015-04-14 10:25:19 GST HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.

2015-04-14 10:25:19 GST LOG:  could not bind IPv4 socket: No error

2015-04-14 10:25:19 GST HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.

2015-04-14 10:25:19 GST WARNING:  could not create listen socket for "*"

2015-04-14 10:25:19 GST FATAL:  could not create any TCP/IP sockets

如果我尝试从 pgAdmin 连接到服务器,我就可以访问它。我没有在 5432 上运行任何其他服务,因为我已经检查了任务管理器中是否有在该端口上运行的应用程序。

我用来启动的命令是

pg_ctl start -D "C:\Program Files (x86)\PostgreSQL\9.4\data"

但我也尝试过

postgres -D "C:\Program Files (x86)\PostgreSQL\9.4\data"

我的 IPv6 设置设为动态 IP,而我的 v4 设置设为宽带调制解调器 IP。我还禁用了 Windows 防火墙和防病毒软件 AVG。我做错了什么?

答案1

最有可能的解释是该端口上已经有服务,但您在任务管理器中看不到它,因为默认情况下它只会显示您的用户拥有的任务。

netstat在管理员命令提示符中运行时检查命令的输出。

还要查找可能正在运行的服务services.mscpostgresql-9.4-x86

请注意,除了这个问题之外,PostgreSQL 通常应作为 Windows 服务运行。pg_ctl register如果不存在服务,请使用创建服务。

如果您想手动运行 PostgreSQL,我建议initdb您使用自己的数据目录,而不是重新使用安装程序创建的数据目录。否则,如果您稍后切换回以服务形式运行,您可能会遇到文件权限问题。

相关内容