postgresql psql:无法连接到服务器:没有此文件或目录

postgresql psql:无法连接到服务器:没有此文件或目录

首先我想说的是,最相关的答案是这里。当我尝试运行以下命令时,我得到了以下结果:

$ 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 社区告诉我启动服务器,/usr/local/pgsql/data但我甚至没有目录/usr/local/pgsql。这让我相信在我的安装和删除过程中没有重新安装某些东西。

  • 我已经安装

    • sudo apt-get install postgresql
    • sudo apt-get install postgresql-client-common
    • sudo apt-get install postgresql-client
    • 通过安装程序为 Ubuntu 16.04 安装 PostgreSQL-9.6.5(但这可能是多余的)。

最后,卸载程序/opt/PostgreSQL/9.6甚至没有按照应有的方式从我的系统中删除所有内容。我只剩下剩余文件窗口卸载后。如果您能帮助我修复could not connect to server上面的问题,那就更好了。最后的办法是,我愿意清除所有内容,但到目前为止还没有成功。

答案1

通过安装程序为 Ubuntu 16.04 安装 PostgreSQL-9.6.5(但这可能是多余的)

这不是多余的,你在两个不同的位置安装了两个不同版本的 Postgres。在像 Ubuntu(以及大多数 Linux 版本)这样的包管理系统上,你应该仅有的使用在包管理器中找到的软件版本。您可能使用了他们网站上的安装程序,该安装程序在/opt/或中安装了 Postgres /usr/local/,并更改了您的 systemd 目标文件以指向该安装。同时,您的客户端来自包管理器,并期望它在 中连接到 UNIX 域套接字/var/run

如果这是一次性虚拟机,请擦除它,重新安装并仅通过 安装 Postgres apt-get。如果不行,看看是否可以卸载下载的软件包并通过 重新安装其他软件包apt-get(希望这将修复您的 systemd 目标文件以指向正确的位置)。

答案2

我刚刚在 Ubuntu 16.04 上运行

sudo reboot

操作系统重新启动后,问题就消失了。

相关内容