Postgres 9.4 работает, но «состояние службы» сообщает об ее отключении

Postgres 9.4 работает, но «состояние службы» сообщает об ее отключении

Ubuntu 14.04.3 LTS и новая установка Postgres 9.4 (с apt-get install postgresql-9.4, ничего особенного). Postgres был запущен pg_ctl startпользователем postgres.

Команда status сообщает, что служба отключена:

[root@box ~]# service postgresql status
9.4/main (port 5432): down

Однако серверявляетсяработает; я вижу, что он прослушивает порт 5432, и я могу подключиться к нему с помощью psql.

[root@box ~]# netstat -a -n -p | grep 5432
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      19377/postgres
tcp        0      0 127.0.0.1:5432          127.0.0.1:45724         ESTABLISHED 20280/postgres: ice
tcp        0      0 127.0.0.1:5432          127.0.0.1:45725         ESTABLISHED 20281/postgres: ice
tcp        0      0 127.0.0.1:5432          127.0.0.1:45732         ESTABLISHED 20288/postgres: ice
tcp        0      0 127.0.0.1:5432          127.0.0.1:45726         ESTABLISHED 20282/postgres: ice
tcp        0      0 127.0.0.1:5432          127.0.0.1:45729         ESTABLISHED 20285/postgres: ice
tcp        0      0 127.0.0.1:5432          127.0.0.1:45723         ESTABLISHED 20279/postgres: ice
tcp        0      0 127.0.0.1:5432          127.0.0.1:45730         ESTABLISHED 20286/postgres: ice
tcp        0      0 127.0.0.1:5432          127.0.0.1:45731         ESTABLISHED 20287/postgres: ice
tcp        0      0 127.0.0.1:5432          127.0.0.1:45728         ESTABLISHED 20284/postgres: ice
tcp        0      0 127.0.0.1:5432          127.0.0.1:45727         ESTABLISHED 20283/postgres: ice
unix  2      [ ACC ]     STREAM     LISTENING     4295677  19377/postgres      /var/run/postgresql/.s.PGSQL.5432

psql-соединение:

[postgres@box~]$ psql
Password:
psql (9.4.5)

postgres=# \conninfo
You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432".

Нужно ли мне что-то еще делать, чтобы запустить Postgres как службу?

решение1

Подводя итог, вы добавили сторонний репозиторий, установили более позднюю версию программы, чем предлагается Ubuntu Software Center, и хотя у вас есть исполняемые файлы, вам не хватает некоторых "связующих" скриптов для их интеграции в вашу систему. Я бы рекомендовал удалить добавленный репозиторий, а затем обновить списки пакетов:

sudo apt-get update

Затем установите postgresql (получите последнюю предлагаемую версию)

sudo apt-get install postgresql postgresql-contrib

Видетьhttps://help.ubuntu.com/community/PostgreSQL

Теперь 14.04 позволит устанавливать несколько версий postgresql, но я уверен, что ожидается, что устанавливаемая версия будет последней. Не уверен, что произойдет, если существующая версия является более поздней и не настроена «ожидаемым» образом. В лучшем случае, он подхватит ее и запустит с назначенным портом (5432), а «новую» версию из Центра программного обеспечения поместит на следующий порт (5433). Обе версии могут быть запущены одновременно, но им потребуются разные порты. Если установке 9.3 предоставлен порт 5432, который уже используется 9.4, а 9.4 просто игнорируется, у вас по крайней мере есть шаблон 9.3 ожидаемых расположений для перемещения/добавления 9.4. Такие вещи, как ссылка /etc/rc2.d/S19postgresql на /etc/init.d/postgresql и /usr/share/postgresql/9.4

Затем найдите файл conf, в котором назначены порты, и убедитесь, что версия 9.4 имеет порт по умолчанию 5432 (если это то, что вам нужно).

решение2

В моем случае я запустил сервер postgres, но статус был 'down'слишком большим, мне пришлось запустить кластер, выполнив команду, pg_ctlcluster 9.4 main startчтобы поместить его 'online', и это сработало.

Я надеюсь, что это помогает.

Связанный контент