Erreur de paquet de démarrage incomplet Postgres

13

J'essaie d'installer Postgres 9.3 sur Ubuntu 14.04 et j'obtiens une erreur gênante au démarrage. Voici ce que je vois:

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

J'ai donc vérifié le fichier journal avec cette sortie:

 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;

"Le paquet de démarrage incomplet" semble être le coupable, mais j'ai du mal à trouver des informations sur ce qui pourrait se passer, alors j'ai pensé que je demanderais. Merci d'avance.

andrewniesen
la source

Réponses:

15

Il y a 3 éléments différents dans cette question:

  • Un paquet de démarrage incomplet se produisant au démarrage du serveur est sans conséquence, vous pouvez l'ignorer. Lisez l' aide du paquet de démarrage incomplète nécessaire (dans la liste de diffusion pgsql-general) pour en savoir plus.

  • une erreur de syntaxe à ou près de "exit" au caractère 1 signifie qu'un client a émis exitcomme s'il s'agissait d'une instruction SQL.

  • L' erreur n'a pas pu être exécutée lors de l'émission service postgresql restartressemble à un problème d'installation grave, mais elle est contredite par l'entrée de journal, database system is ready to accept connectionsce qui signifie que le serveur a démarré correctement.

Daniel Vérité
la source
Votre réponse "ressemble à un problème d'installation grave" m'a incité à faire des recherches supplémentaires sur la façon de supprimer complètement Postgres et de le réinstaller. J'ai trouvé cet article qui a été utile pour supprimer toutes les traces de Postgres avant la réinstallation et a très bien fonctionné.
andrewniesen
8
l'une des causes possibles du "paquet de démarrage incomplet" est lorsqu'une connexion TCP est établie avec le port postgresql 5432 et immédiatement fermée. Cela peut se produire lorsqu'un programme de surveillance est configuré pour vérifier le port, mais pas pour exécuter une commande SQL.
Tom H
Joliment repéré @ Tom, qui m'a mordu aujourd'hui. Existe-t-il un autre moyen de vérifier que la base de données accepte les connexions? MySQL amysqladmin --wait=30 ping
Yarek T
1
@YarekT: pg_isready - vérifier l'état de connexion d'un serveur PostgreSQL
Daniel Vérité
-1

Peut-être que vos iptables déposent des packages sur le port 5432.
Envisagez d'ajouter la règle suivante à vos iptables:

# sudo iptables -A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT
Sadads Dadssa
la source