Назад | Перейти на главную страницу

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.

Ответ, который кажется многообещающим:

Наконец, деинсталлятор, найденный в /opt/PostgreSQL/9.6 даже не удаляет все из моей системы так, как должно. Я остаюсь с a окно оставшихся файлов после удаления. Если бы вы могли помочь мне исправить could not connect to server вопрос вверху, который был бы предпочтительнее. В крайнем случае, я хотел бы вытереть все начисто, но пока мне не повезло.

PostgreSQL-9.6.5 для Ubuntu 16.04 через установщик (но это может быть избыточным)

Это не лишний раз, вы установили две разные версии Postgres в двух разных местах. В системе управления пакетами, такой как Ubuntu (и большинство разновидностей Linux), вы должны только используйте версию программного обеспечения, найденную в диспетчере пакетов. Вы, вероятно, использовали установщик с их веб-сайта, который установил Postgres либо в /opt/ или /usr/local/ и изменил целевые файлы systemd, чтобы они указывали на эту установку. Между тем ваш клиент исходит из диспетчера пакетов и ожидает сокет домена UNIX, к которому он подключается в /var/run.

Если это выброшенная виртуальная машина, протрите ее, переустановите и установите Postgres только через apt-get. Если нет, посмотрите, можете ли вы удалить загруженный пакет и переустановить другие пакеты с помощью apt-get (который, надеюсь, исправит ваши целевые файлы systemd, чтобы они указывали на правильное место).

Я только что запустил свой Ubuntu 16.04

sudo reboot

После перезагрузки ОС проблема исчезла.