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'
,它工作了。
我希望它有幫助。