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:
pg_lsclusters
ne répertorie aucun cluster de firebase database apt-get --purge remove postgresql\*
– c’est important /etc/postgresql/
/etc/postgresql-common
/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.