Postgres 9.4 正在运行,但“服务状态”报告其已关闭

Postgres 9.4 正在运行,但“服务状态”报告其已关闭

Ubuntu 14.04.3 LTS 和 Postgres 9.4 的新安装(带有,没什么特别的)。Postgres由 postgres 用户apt-get install postgresql-9.4启动。pg_ctl start

status 命令报告服务已关闭:

[root@box ~]# service postgresql status
9.4/main (port 5432): down

然而,服务器正在运行;我可以看到它正在监听 5432 并且我可以使用 psql 连接到它。

[root@box ~]# netstat -a -n -p | grep 5432
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      19377/postgres
tcp        0      0 127.0.0.1:5432          127.0.0.1:45724         ESTABLISHED 20280/postgres: ice
tcp        0      0 127.0.0.1:5432          127.0.0.1:45725         ESTABLISHED 20281/postgres: ice
tcp        0      0 127.0.0.1:5432          127.0.0.1:45732         ESTABLISHED 20288/postgres: ice
tcp        0      0 127.0.0.1:5432          127.0.0.1:45726         ESTABLISHED 20282/postgres: ice
tcp        0      0 127.0.0.1:5432          127.0.0.1:45729         ESTABLISHED 20285/postgres: ice
tcp        0      0 127.0.0.1:5432          127.0.0.1:45723         ESTABLISHED 20279/postgres: ice
tcp        0      0 127.0.0.1:5432          127.0.0.1:45730         ESTABLISHED 20286/postgres: ice
tcp        0      0 127.0.0.1:5432          127.0.0.1:45731         ESTABLISHED 20287/postgres: ice
tcp        0      0 127.0.0.1:5432          127.0.0.1:45728         ESTABLISHED 20284/postgres: ice
tcp        0      0 127.0.0.1:5432          127.0.0.1:45727         ESTABLISHED 20283/postgres: ice
unix  2      [ ACC ]     STREAM     LISTENING     4295677  19377/postgres      /var/run/postgresql/.s.PGSQL.5432

psql连接:

[postgres@box~]$ psql
Password:
psql (9.4.5)

postgres=# \conninfo
You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432".

我还需要做其他事情来将 Postgres 作为服务运行吗?

答案1

总而言之,您添加了第三方存储库,安装了比 Ubuntu 软件中心提供的程序版本更高的程序,虽然您获得了可运行的可执行文件,但您缺少一些“粘合”脚本来将它们集成到您的系统中。我建议删除添加的存储库,然后更新软件包列表:

sudo apt-get update

然后安装 postgresql(将获得最新提供的版本)

sudo apt-get install postgresql postgresql-contrib

https://help.ubuntu.com/community/PostgreSQL

现在 14.04 将允许安装多个 postgresql 版本 - 但我确信预期是安装的版本将是最新版本。不确定当现有版本是较新的版本并且没有真正以“预期”的方式设置时会发生什么。最好的情况是,它将选择它,并使用分配的端口 (5432) 运行它,并将软件中心的“新”版本放在下一个端口 (5433) 上。两个版本可以同时运行,但需要不同的端口。如果 9.3 安装被赋予 9.4 已经在使用的 5432 端口,而 9.4 被忽略,那么您至少有一个 9.3 模板,其中包含移动/添加 9.4 的预期位置。诸如 /etc/rc2.d/S19postgresql 链接到 /etc/init.d/postgresql 和 /usr/share/postgresql/9.4

然后跟踪分配端口的 conf 文件并确保 9.4 版本处于默认的 5432(如果这是您想要的)。

答案2

就我而言,我已经启动了 postgres 服务器,但状态也是'down'如此,我必须通过执行pg_ctlcluster 9.4 main start以下命令来启动集群'online',这样它才能正常工作。

我希望它有帮助。

相关内容