Сначала я хочу сказать, что наиболее подходящим ответом был Вот. Когда я пытаюсь запустить следующее, я получаю:
$ 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
но у меня ДАЖЕ НЕТ режиссера /usr/local/pgsql
. Это наводит меня на мысль, что в моих установках и удалениях что-то не переустанавливалось.
Я установил
sudo apt-get install postgresql
sudo apt-get install postgresql-client-common
sudo apt-get install postgresql-client
Наконец, деинсталлятор, найденный в /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
После перезагрузки ОС проблема исчезла.