Postgres 9.4 正在運行,但「服務狀態」報告它已關閉

Postgres 9.4 正在運行,但「服務狀態」報告它已關閉

Ubuntu 14.04.3 LTS 和新安裝的 Postgres 9.4(有apt-get install postgresql-9.4,沒什麼花俏的)。 Postgres 是pg_ctl start由 postgres 使用者啟動的。

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

總而言之,您添加了第3 方存儲庫,安裝了比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',它工作了。

我希望它有幫助。

相關內容