110 votes

La base de données Postgres ne démarre pas sur Mac OSX : ERROR dit : connexions sur le socket de domaine Unix

J'ai installé Postgresql, puis j'ai exécuté un certain nombre d'applications rails sur mon Mac OSX Mountain Lion local et créé des bases de données, etc. Aujourd'hui, après un certain temps, lorsque j'ai lancé pgAdminIII et essayé de lancer un serveur de base de données, j'ai obtenu cette erreur :

enter image description here

Une recherche rapide sur Google a montré este poste. Une recherche plus poussée m'a permis de découvrir qu'il pouvait y avoir une sorte de fichier postmaster.pid qui traîne et qui pourrait être la cause première de ce problème. Si je le supprime, tout ira bien.

Toutefois, avant de supprimer des éléments de mon ordinateur, je voulais m'assurer que je déboguais cette situation de manière systématique afin d'éviter d'autres problèmes.

J'ai lu quelque part qu'avant de supprimer ce fichier, je devais exécuter cette commande :

  ps auxw | grep post

Si je n'obtiens aucun résultat, je peux supprimer le fichier. Sinon, non. J'ai obtenu ce résultat avec cette commande :

  AM               476   0.0  0.0  2423356    184 s000  R+    9:28pm   0:00.00 grep post

Alors maintenant, bien sûr, je suis complètement perdue.

Alors, que dois-je faire ?

Voici une partie du journal des erreurs de mon serveur postgres :

 FATAL:  lock file "postmaster.pid" already exists
 HINT:  Is another postmaster (PID 171) running in data directory "/usr/local/var/postgres"?

Postgresql ne fonctionne toujours pas, j'ai toujours la même erreur et rien n'a changé. J'ai trop peur de supprimer des choses sans vérifier le SO.

Certains d'entre vous, experts, pourraient-ils guider un novice ?

Gracias

256voto

Reboot Points 2548

J'ai eu le même problème aujourd'hui sur Mac Sierra. Dans Mac Sierra, vous pouvez trouver postmaster.pid à l'intérieur de /Users/<user_name>/Library/Application Support/Postgres/var-9.6 . Supprimer postmaster.pid et le problème sera réglé.

73voto

sqren Points 981

Cela peut se produire si la base de données n'a pas été fermée correctement. Pour le corriger, il suffit de supprimer le fichier postmaster.pid fichier. L'emplacement diffère en fonction de votre système d'exploitation :

MacOS :

 rm /Users/<user_name>/Library/Application\ Support/Postgres/var-9.6/postmaster.pid

ou en utilisant Postgres.app :

 rm /Users/<user>/Library/Application\ Support/Postgres/var-10/postmaster.pid

Linux :

 rm /usr/local/var/postgres/postmaster.pid

32voto

banditKing Points 2309

La base de données fonctionne maintenant.

Voici les étapes que j'ai suivies :

  1. J'ai redémarré mon ordinateur
  2. J'ai ouvert le terminal et exécuté cd /
  3. Puis j'ai fait ls -la
  4. Je me suis assuré que je pouvais me rendre MackintoshHD/usr/local/var/postgres
  5. Alors, est-ce que ls -la
  6. Ici, j'ai vu le fichier postmaster.pid
  7. J'ai lancé cette commande cp postmaster.pid ~/Desktop qui a copié le J'aime faire cela si je supprime des fichiers. Si quelque chose ne va pas, je peux le remettre
  8. Puis j'ai lancé cette commande pour supprimer le fichier de postgres . rm -r postmaster.pid
  9. Je suis allé dans mon gui pgadmin3 et je l'ai lancé. et voilà, ça a marché :)

Merci à @Craig Ringer pour son aide

4voto

Andrew Southard Points 61

J'utilise Postgres.app, et ce qui suit a fonctionné pour moi :

J'ai entré les commandes dans mon terminal ci-dessous, en localisant le dossier Postgres au préalable et sans utiliser "justin".

$declare -x PGDATA="/Users/justin/Library/Application Support/Postgres/var-9.4"

$pg_ctl restart -m immediate

Comme Justin l'explique dans son post, le résultat après cette opération était :

attente de l'arrêt du serveur a échoué pg_ctl : le serveur ne s'arrête pas

Après avoir entré à nouveau la commande :

$pg_ctl restart -m immediate

Ça a marché et j'ai eu ce message :

pg_ctl : l'ancien processus serveur (PID : 373) semble avoir disparu démarrage du serveur de toute façon, le serveur démarre LOG : le système de base de données a été interrompu ; dernier dernier connu à 2015-07-28 18:15:26 PDT LOG : le système de base de données n'a pas été système de base de données n'a pas été correctement arrêté ; récupération automatique en cours LOG : record with de longueur nulle à 0/4F0F7A8 LOG : redo is not required LOG : database système est prêt à accepter des connexions LOG : lanceur d'autovacuum démarré

Fuente

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X