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'
,这样它才能正常工作。
我希望它有帮助。