Błąd pakietu niekompletnego Postgres

13

Próbuję zainstalować Postgres 9.3 na Ubuntu 14.04 i pojawia się uciążliwy błąd podczas uruchamiania. Oto co widzę:

$ 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]

Więc sprawdziłem plik dziennika z tym wyjściem:

 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;

Winowajcą wydaje się być „niekompletny pakiet startowy”, ale mam problem ze znalezieniem informacji o tym, co się dzieje, więc pomyślałem, że zapytam. Z góry dziękuję.

andrewniesen
źródło

Odpowiedzi:

15

W tym pytaniu są 3 różne elementy:

  • Niekompletny pakiet startowy występujący przy starcie serwera jest nieistotny, możesz go zignorować. Przeczytaj Niekompletna pomoc dotycząca pakietu startowego (w pgsql-general mailing-list), aby uzyskać więcej.

  • błąd składniowy przy lub w pobliżu „exit” przy znaku 1 oznacza, że ​​klient został wydany exittak, jakby był instrukcją SQL.

  • Nie można wykonać błędu podczas wydawania, service postgresql restartwygląda na poważny problem z instalacją, ale jest to sprzeczne z wpisem w dzienniku, database system is ready to accept connectionsco oznacza, że ​​serwer dobrze się uruchomił.

Daniel Vérité
źródło
Twoja odpowiedź „wygląda na poważny problem z instalacją” skłoniła mnie do dalszych badań na temat całkowitego usunięcia Postgres i ponownej instalacji. Znalazłem ten artykuł, który był pomocny w usunięciu każdego śladu Postgres przed ponowną instalacją i działał świetnie.
andrewniesen
8
jedną z możliwych przyczyn „Niekompletnego pakietu startowego” jest połączenie TCP z portem postgresql 5432 i natychmiastowe zamknięcie. Może się to zdarzyć, gdy program monitorowania jest skonfigurowany do sprawdzania portu, ale nie do uruchamiania polecenia SQL.
Tom H
Ładnie zauważył @TomH, który mnie dziś ugryzł. Czy istnieje inny sposób sprawdzenia, czy baza danych akceptuje połączenia? MySQL mamysqladmin --wait=30 ping
Yarek T
1
@YarekT: pg_isready - sprawdź status połączenia serwera PostgreSQL
Daniel Vérité
-1

Być może twoje iptables upuszczają pakiety na porcie 5432.
Rozważ dodanie następującej reguły do ​​iptables:

# sudo iptables -A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT
Sadads Dadssa
źródło