Ubuntu

postgresql psql:無法連接到伺服器:沒有這樣的文件或目錄

  • January 14, 2018

首先,我想說最相關的答案在這裡。當我嘗試執行以下內容時,我得到了:

$ sudo -u postgres psql
psql: could not connect to server: No such file or directory
   Is the server running locally and accepting
   connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

我還可以通過執行下面的第一個命令來確認伺服器啟動和退出。下面的第二個命令確認伺服器已啟動但立即退出,

$ sudo service postgresql restart
$ sudo service postgresql status
● postgresql.service - PostgreSQL RDBMS
  Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
  Active: active (exited) since Mon 2017-09-25 18:37:32 EDT; 11min ago
 Process: 8459 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 8459 (code=exited, status=0/SUCCESS)

Sep 25 18:37:32 atas-250-557 systemd[1]: Starting PostgreSQL RDBMS...
Sep 25 18:37:32 atas-250-557 systemd[1]: Started PostgreSQL RDBMS.

一個似乎很有希望的答案:

  • postgresql.org告訴我啟動我的伺服器,/usr/local/pgsql/data但我什至沒有 dir /usr/local/pgsql。這使我相信在我的安裝和刪除中沒有重新安裝某些東西。

  • 我已經安裝

    • sudo apt-get install postgresql
    • sudo apt-get install postgresql-client-common
    • sudo apt-get install postgresql-client
    • PostgreSQL-9.6.5 for Ubuntu 16.04 通過安裝程序(但這可能是多餘的)。

最後,在 中找到的解除安裝/opt/PostgreSQL/9.6程序甚至沒有按照應有的方式從我的系統中刪除所有內容。解除安裝後,我留下了剩余文件的視窗。如果您可以幫助我解決could not connect to server頂部的問題,那將是首選。最後的手段我願意把所有東西都擦乾淨,但到目前為止還沒有運氣。

通過安裝程序用於 Ubuntu 16.04 的 PostgreSQL-9.6.5(但這可能是多餘的)

這不是多餘的,您已經在兩個不同的位置安裝了兩個不同版本的 Postgres。在像 Ubuntu(和大多數版本的 Linux)這樣的包管理系統上,您應該使用在包管理器中找到的軟體版本。您可能使用了他們網站上的安裝程序,該安裝程序將 Postgres 安裝在/opt//usr/local/更改了 systemd 目標文件以指向該安裝。同時,您的客戶端來自包管理器,並期待它連接到的 UNIX 域套接字/var/run

如果這是一個扔掉的虛擬機,請擦除它,重新安裝並僅通過apt-get. 如果沒有,請查看是否可以解除安裝您下載的軟體包並通過重新安裝其他軟體包apt-get(這有望修復您的 systemd 目標文件以指向正確的位置)。

引用自:https://serverfault.com/questions/875454