307 votes

psql: impossible de se connecter au serveur: aucun fichier ou répertoire de ce type (Mac OS X)

veuillez noter: je poste cette question dans l'espoir qu'il aidera d'autres personnes avec ce problème. j'ai cherché sur beaucoup de choses ici, et de ne pas le voir d'une question/réponse qui a été tout à fait le même, donc je voulais poster ce, et de répondre moi-même dans l'espoir d'aider les autres...

ainsi, lors du redémarrage de mon macbook j'ai eu le redoutable Postgres d'erreur:

psql: 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"?

la raison de ce qui s'est passé c'est parce que mon macbook gelé complètement en raison d'un problème distinct et que j'ai dû faire un hard reboot avec le bouton power. après le redémarrage, je ne pouvais pas commencer à Postgres à cause de cette erreur.

479voto

FireDragon Points 1113

cela a réglé le problème, j'avais besoin de supprimer ce fichier, et puis tout a fonctionné!

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

... mais attention, si vous supprimez maître de poste.pid sans s'assurer qu'il ya vraiment pas d' postgres processus en cours d'exécution, vous pourrait définitivement corrompre votre base de données. PostgreSQL doit supprimer automatiquement si l'administrateur a quitté. (Edit par le CR)

--

et voici comment j'ai compris le pourquoi de ce qui doit être supprimé.

  1. j'ai d'abord utilisé la commande suivante pour voir si il y avait des PG processus en cours d'exécution. pour moi il n'y en avait pas, je ne pouvais même pas commencer le PG serveur:

    ps auxw | grep post
    
  2. deuxièmement, j'ai cherché le fichier .s.PGSQL.5432 qui était dans le message d'erreur ci-dessus. j'ai utilisé la commande suivante:

    sudo find / -name .s.PGSQL.5432 -ls
    

    cela n'a pas montrer quoi que ce soit après une recherche dans l'ensemble de mon ordinateur pour le fichier n'existe pas, mais de toute évidence psql "wanted" ou "de la pensée, il y était".

  3. troisièmement, j'ai pris un coup d'oeil à mes journaux de serveur et vu le message d'erreur suivant:

    cat /usr/local/var/postgres/server.log
    

    à la fin du journal du serveur, je vois le message d'erreur suivant:

    FATAL:  pre-existing shared memory block (key 5432001, ID 65538) is still in use
    HINT:  If you're sure there are no old server processes still running, remove the shared memory block or just delete the file "postmaster.pid".
    
  4. Suivant les conseils donnés dans le message d'erreur, j'ai supprimé le maître de poste.pid fichier dans le même répertoire que le serveur.journal. Cette résolu le problème et j'ai pu redémarrer.

Donc, il semble que mon macbook gel et fort redémarré causé Postgres à penser que les processus étaient toujours en cours d'exécution, même après redémarrage. La suppression de ce fichier résolu. Espérons que cela aide les autres! Beaucoup de gens ont des problèmes similaires mais plus les réponses avaient à faire avec les autorisations de fichier, alors que dans mon cas, les choses étaient différentes.

8voto

crazzyaka Points 66

Bonjour tout le monde :)
Le meilleur, mais étrange façon pour moi de faire les choses.

1) Télécharger postgres93.application ou l'autre version. Ajouter cette application dans le dossier /Applications/.

2) Ajouter une ligne de commande (commande) dans le fichier .bash_profile (qui est dans mon répertoire home):

export PATH=/Applications/Postgres93.app/Contents/MacOS/bin/:$PATH

C'est un CHEMIN de psql de Postgres93.app. La ligne de commande (commande) s'exécute à chaque démarrage de la console est commencé.

3) Lancement Postgres93.app de /Applications/ le dossier. Il démarre un serveur local (le port est "5432" et l'hôte est "localhost").

4) Après tout cela les manipulations j'ai été heureux d'exécuter $ createuser -SRDP user_name et les autres commandes et de voir que ça a fonctionné! Postgres93.app peut être fait pour s'exécuter à chaque fois que votre système démarre.

5) Aussi, si vous voulez voir vos bases de données graphiquement vous devez installer PG Commander.app. C'est une bonne façon de voir votre postgres DB que de jolies tables de données

De même, bien sûr, c'est utile uniquement pour le serveur local. Je serai content si ce mode d'aider d'autres personnes qui ont été confrontées à ce problème.

7voto

Jerome Points 342

Ce problema a de nombreuses sources, et donc beaucoup de réponses. J'ai vécu de chacun d'eux.

1) Si vous avez un accident de la sorte, en supprimant le répertoire /usr/local/var/postgres/postmaster.fichier pid est probablement nécessaire que postgres peut pas manipulé correctement. Mais de s'assurer qu'aucun processus n'est en cours d'exécution.

2) Craig Sonnerie a indiqué dans d'autres posts qu'Apple regroupement de postgreSQL conduit à pg gem problèmes d'installation Réglage de la variable d'environnement PATH est une solution.

3) une Autre solution est de désinstaller et réinstaller le gem. Une infusion de mise à jour peut être nécessaire.

Si vous tombez sur ce post, si vous pouvez identifier l'une des sources, vous gagnerez du temps...

0voto

cohart Points 8

J'ai dû regarder ce post plusieurs fois pour résoudre ce problème. Il existe un autre correctif, qui s'applique également à des problèmes similaires avec d'autres programmes en cours d'exécution.

Je viens de découvrir que vous pouvez utiliser les deux commandes suivantes.

$ top

Cela montrera toutes les actions en cours avec leurs numéros de pid. Quand vous trouvez postgres et le pid associé

$ kill pid_number

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