Postgresql - это сервер, работающий локально и принимающий соединение в домене Unix.

Я пытаюсь установить postgresql-9.5 или postgresql-9.6 на моем компьютере ubuntu 16.04 или 14.04 после выполнения процесса установки с использованием приведенных ниже команд.

sudo apt-get install update
sudo apt-get install postgresql postgresql-contrib

Но когда я пытаюсь открыть psql со своего терминала, используя приведенные ниже команды

sudo su postgres 
psql 

каждый раз это просто показывает.

psql: не удалось подключиться к серверу: нет такого файла или каталога. Сервер работает локально и принимает соединения через сокет домена Unix "/var/run/postgresql/.s.PGSQL.5432"?

Я пробовал примерно 10 решений stackoverflow.com, но безуспешно. Пожалуйста, помогите мне, пока я не вырвал себе все волосы :(

$ service postgresql status

● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor prese
   Active: active (**exited) since রবি 2017-03-12 21:45:56 BDT; 23min ago
  Process: 917 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 917 (code=exited, status=0/SUCCESS)
    Tasks: 0
   Memory: 0B
      CPU: 0
   CGroup: /system.slice/postgresql.service

внимательно посмотрите на эту строку, почему вышел? Активен: активен (вышел) с রবি 2017-03-12 21:45:56 BDT; 23 мин. Назад


person Always Sunny    schedule 12.03.2017    source источник
comment
active (exited) нормально   -  person Gab    schedule 12.03.2017
comment
Первое, что нужно проверить, это файл журнала postgres. Postgres не запускается при (некоторых) ошибках конфигурации и сообщает об этом в файле журнала перед выходом.   -  person wildplasser    schedule 12.03.2017


Ответы (2)


Вы можете запустить следующую команду, чтобы проверить, запущен ли postgresql:

service postgresql status

Если PostgreSQL не запущен, вы можете запустить его:

service postgresql start
service postgresql status

Если он не запускается должным образом, вы можете посмотреть, что происходит в журналах:

tail /var/log/postgresql/postgresql-9.6-main.log

Возможно, вам придется запустить createdb для инициализации базы данных (см. https://www.postgresql.org/docs/current/static/app-createdb.html):

createdb demo

Обновить

Если PostgreSQL запущен, когда вы делаете service postgresql status, но по-прежнему не можете подключиться, вам следует проверить, действительно ли PostgreSQL работает на порту 5432 или другом, с помощью:

netstat -na | grep postgres

Обновление 2

Поскольку собственные пакеты на debian / ubuntu для PostgreSQL - отстой, я советую вам установить их вместо них: https://www.gab.lc/articles/install_postgresql_9-5_debian_ubuntu (замените 9-2 на 9-6).

person Gab    schedule 12.03.2017
comment
Я добавил к своему ответу проверку порта, дайте мне знать, поможет ли это - person Gab; 12.03.2017
comment
netstat -na | grep postgres ничего не показывает на терминале - person Always Sunny; 12.03.2017
comment
хорошо, я настоятельно рекомендую вам удалить пакеты из debian и установить те, которые предложены в моем обновлении 2 - person Gab; 12.03.2017
comment
Спасибо! Вы спасли меня! - person GeekSilva; 21.02.2018

Вот как, наконец, решила мою проблему после удаления существующей версии и каталога postgresql

sudo apt-get --purge remove postgresql-*
sudo rm -Rf /etc/postgresql /var/lib/postgresql
sudo apt-get install postgresql
person Always Sunny    schedule 14.03.2017
comment
Прямой ответ, который работает. Спасибо, что написали. - person Jansen Simanullang; 18.10.2019