Postgres неполная ошибка пакета запуска


13

Я пытаюсь установить Postgres 9.3 на Ubuntu 14.04 и получаю утомительную ошибку при запуске. Вот что я вижу:

$ sudo service postgresql restart
* Restarting PostgreSQL 9.3 database server
* Error: could not exec /usr/lib/postgresql/9.3/bin/pg_ctl /usr/lib/postgresql/9.3/bin/pg_ctl start -D /var/lib/postgresql/9.3/main -l /var/log/postgresql/postgresql-9.3-main.log -s -o  -c config_file="/etc/postgresql/9.3/main/postgresql.conf" : [fail]

Итак, я проверил файл журнала с таким выводом:

 2015-01-05 21:50:05 EST LOG:  database system was shut down at 2015-01-05 21:50:03 EST
 2015-01-05 21:50:05 EST LOG:  database system is ready to accept connections
 2015-01-05 21:50:05 EST LOG:  autovacuum launcher started
 2015-01-05 21:50:06 EST LOG:  incomplete startup packet
 2015-01-05 21:51:22 EST ERROR:  syntax error at or near "exit" at character 1
 2015-01-05 21:51:22 EST STATEMENT:  exit;

«Неполный пакет запуска» кажется виновником, но у меня возникают проблемы с поиском информации о том, что может происходить, поэтому я подумал, что спросить. Заранее спасибо.

Ответы:


15

В этом вопросе есть 3 различных пункта:

  • Неполный стартовый пакет, возникающий при запуске сервера, несущественен, вы можете его проигнорировать. Подробнее читайте в справке по неполному пакету запуска (в списке рассылки pgsql-general).

  • Синтаксическая ошибка в или около «выхода» в символе 1 означает, что клиент выдан, exitкак если бы это был оператор SQL.

  • Ошибка « Не удалось выполнить» при выдаче service postgresql restartвыглядит как серьезная проблема при установке, но это противоречит записи в журнале, database system is ready to accept connectionsозначающей, что сервер запустился очень хорошо.


Ваш ответ «выглядит как серьезная проблема с установкой» побудил меня провести еще несколько исследований о том, как полностью удалить Postgres и переустановить. Я нашел эту статью, которая была полезна для удаления всех следов Postgres до переустановки, и отлично работала.
Andrewniesen

8
Одна из возможных причин «Неполный стартовый пакет» - это когда TCP-соединение установлено с портом 5432 postgresql и немедленно закрыто. Это может произойти, когда программа мониторинга настроена для проверки порта, но не для запуска команды SQL.
Том Х

Приятно заметили @TomH, это меня укусило сегодня. Есть ли другой способ проверить, что база данных принимает соединения? MySQL имеетmysqladmin --wait=30 ping
Yarek T

1
@YarekT: pg_isready - проверить состояние соединения с сервером PostgreSQL
Даниэль Верите

-1

Возможно, ваши iptables отбрасывают пакеты через порт 5432.
Попробуйте добавить следующее правило в ваши iptables:

# sudo iptables -A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.