PostgreSQL postmaster 未啟動

PostgreSQL postmaster 未啟動

我試圖在從原始程式碼建立 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

經過谷歌搜尋後,我能找到的唯一結果給了我一些提示,告訴我要執行以下命令,其輸出如下:

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 或程式設計師。)

答案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

相關內容