Élimination des installations PostgreSQL qui ne fonctionnent pas sur Ubuntu 10.04 et redémarrage

Je trouve que j’ai la ruine de deux anciennes installations de PostgreSQL sur Ubuntu 10.04:

$ pg_lsclustersVersion Cluster Port Status Owner Data directory Log file Use of uninitialized value in printf at /usr/bin/pg_lsclusters line 38. 8.4 main 5432 down /var/lib/postgresql/8.4/main /var/log/postgresql/postgresql-8.4-main.log Use of uninitialized value in printf at /usr/bin/pg_lsclusters line 38. 9.1 main 5433 down /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log $ 

Les tentatives d’exécution de fonctions de base renvoient des erreurs, par exemple:

 createuser: could not connect to database postgres: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"? 

Plus d’informations vient quand je tente de démarrer le serveur de firebase database:

 $ sudo /etc/init.d/postgresql start * Starting PostgreSQL 9.1 database server * Error: The cluster is owned by user id 109 which does not exist any more ...fail! $ 

Ma question: comment supprimer complètement les deux clusters et en créer un nouveau? J’ai essayé de supprimer, de purger et de réinstaller postgresql , en suivant les conseils fournis ici: https://stackoverflow.com/a/2748644/621762 . Désormais, pg_lsclusters ne montre aucun cluster, mais l’erreur No such file or directory createuser No such file or directory persiste lorsque j’essaie de createuser , de createuser ou d’exécuter psql . Qu’est-ce que j’ai omis de faire?

Premièrement, cette réponse à votre question était assez dangereuse – éditer manuellement /etc/passwd ?!? dselect où un joker apt ferait? Des trucs fous Je ne suis pas surpris que vous ayez des problèmes.

En ce qui concerne les messages de no such file or directory : Vous devez vous assurer que vous utilisez un serveur PostgreSQL (“cluster”) avant de pouvoir utiliser des commandes d’administration telles que createdb , car elles établissent une connexion au serveur. Le message No such file or directory indique que le serveur n’existe pas ou n’est pas en cours d’exécution.

Voici ce qui se passe:

Ubuntu utilise pg_wrapper pour gérer plusieurs instances PostgreSQL simultanées. Les problèmes que vous rencontrez sont vraiment avec pg_wrapper .

Idéalement, vous auriez juste utilisé pg_dropcluster pour vous débarrasser des clusters indésirables. Malheureusement, en suivant de mauvais conseils, vous avez l’impression que votre système est dans un état désordonné où les paquetages PostgreSQL sont à moitié installés et en quelque sorte mutilés. Vous devez soit réparer l’installation, soit la nettoyer complètement.

Je vais le nettoyer. Je recommande:

  • Vérifier que pg_lsclusters ne répertorie aucun cluster de firebase database
  • apt-get --purge remove postgresql\* – c’est important
  • Supprimer /etc/postgresql/
  • Supprimez /etc/postgresql-common
  • Supprimez /var/lib/postgresql
  • userdel -r postgres
  • groupdel postgres
  • apt-get install postgresql-common postgresql-9.1 postgresql-consortingb-9.1 postgresql-doc-9.1

Il est possible que l’étape apt-get --purge échoue car vous avez supprimé les ID utilisateur, etc. useradd -r -u 109 postgres l’ID utilisateur postgres avec useradd -r -u 109 postgres devrait vous permettre de relancer la purge avec succès, puis supprimer l’utilisateur après.