PostgreSQL 邮件管理员未启动

PostgreSQL 邮件管理员未启动

我尝试在从源代码构建 PostgreSQL 实例后进行安装,但postmaster在启动数据库集群之前运行守护程序似乎不起作用。这是我启动时收到的错误消息:

postgres@Home:~$ /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
LOG:  could not bind IPv4 socket: Address already in use
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

在 Google 上搜索后,我找到的唯一结果给了我一些提示,告诉我运行以下命令,其输出如下:

postgres@Home:~$ lsof -i :5432
COMMAND   PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
postgres 1169 postgres    3u  IPv4   1998      0t0  TCP localhost:postgresql (LISTEN)

postgres@Home:~$ netstat -an|grep :5432
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN   

这让我相信守护进程postmaster尝试锁定的端口的连接实际上是可用的。有什么想法可以解释为什么会出现这种情况吗?

如果您好奇的话,我正在运行 pgsql 9.2.3。(此外,如果这是错误的 Stack Exchange 网站,请将其移至 Stack Overflow 或 Programmers。)

答案1

启动失败时出现的错误消息postmasternetstat输出显示已有一个进程使用5432TCP 端口。可能是因为 PostgreSQL 已作为系统的一部分安装。查看您是否有postgresql-9.1包安装,以及的输出pg_lsclusters

如果您想要同时运行您自己编译的 PostgreSQL 和为 Ubuntu 预先打包的 PostgreSQL,则需要port更改/usr/local/pgsql/data/postgresql.conf.

另一方面,如果你只希望运行自编译的 PostgreSQL 并使用默认端口5432,你可以删除 Ubuntu 包或在启动时通过编辑禁用集群/etc/postgresql/9.1/main/start.conf

相关内容