psql: impossible de se connecter au serveur: pas de tel fichier ou répertoire (Mac OS X)

Au redémarrage de mon Mac, j’ai reçu l’erreur redoutée de Postgres:

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 pour laquelle cela s’est produit est que mon macbook s’est complètement figé à cause d’un problème non lié et j’ai dû faire un redémarrage en utilisant le bouton d’alimentation. Après le redémarrage, je ne pouvais pas démarrer Postgres à cause de cette erreur.

ATTENTION: Si vous supprimez postmaster.pid sans vous assurer qu’il n’y a pas vraiment de processus postgres cours d’exécution, votre firebase database pourrait être corrompue de manière permanente . (PostgreSQL devrait le supprimer automatiquement si le postmaster est sorti.)

SOLUTION: Cela a résolu le problème – j’ai supprimé ce fichier, puis tout a fonctionné!

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

et voici comment j’ai compris pourquoi cela devait être supprimé.

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

     ps auxw | grep post 
  2. J’ai cherché le fichier .s.PGSQL.5432 qui se trouvait dans le message d’erreur ci-dessus. J’ai utilisé la commande suivante:

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

    cela n’a rien montré après une recherche dans tout mon ordinateur pour que le fichier n’existe pas, mais évidemment psql “le voulait” ou “pensait que c’était le cas”.

  3. J’ai regardé les journaux de mon serveur et j’ai vu l’erreur suivante:

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

    à la fin du journal du serveur, je vois l’erreur suivante:

     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. Suite aux conseils du message d’erreur, j’ai supprimé le fichier postmaster.pid dans le même répertoire que server.log. Cela a résolu le problème et j’ai pu redémarrer.

Donc, il semble que mon gel de macbook et son redémarrage ont incité Postgres à penser que ses processus fonctionnaient encore, même après le redémarrage. La suppression de ce fichier a été résolue. J’espère que cela aide les autres! Beaucoup de gens ont des problèmes similaires, mais la plupart des réponses concernaient les permissions de fichiers, alors que dans mon cas, les choses étaient différentes.

SI vous avez installé via homebrew que d’utiliser la commande suivante

 brew services stop postgresql brew services start postgresql 

Si votre ubuntu la commande suivante sera travaillée Il suffit de redémarrer le serveur en exécutant

 $sudo service postgresql restart 

ou

 sudo /etc/init.d/postgresql restart 

Rien de ce qui précède n’a fonctionné pour moi. J’ai dû réinstaller Postgres de la manière suivante:

  • Désinstallez postgresql avec brew: brew uninstall postgresql
  • brew doctor (réparer ce qui est ici)
  • brew prune
  • Supprimez tous les dossiers Postgres:

    • rm -r /usr/local/var/postgres
    • rm -r /Users//Library/Application\ Support/Postgres
  • Réinstaller postgresql avec brew: brew install postgresql

  • Serveur de démarrage: les brew services start postgresql
  • Vous devriez maintenant créer vos bases de données … ( createdb )

Bonjour le monde 🙂
La meilleure mais étrange façon pour moi était de faire les choses suivantes.

1) Téléchargez postgres93.app ou une autre version. Ajoutez cette application dans le dossier / Applications /.

2) Ajouter une ligne (commande) dans le fichier .bash_profile (qui se trouve dans mon répertoire personnel):

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

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

3) Lancez Postgres93.app partir du dossier /Applications/ . Il démarre un serveur local (le port est “5432” et l’hôte est “localhost”).

4) Après toutes ces manipulations, j’ai été heureux de lancer $ createuser -SRDP user_name et d’autres commandes et de voir que cela fonctionnait! Postgres93.app peut être exécuté à chaque démarrage de votre système.

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 firebase database Postgres comme de jolies tables de données

Bien sûr, cela n’est utile que pour le serveur local. Je serai heureux si ces instructions aident les autres personnes qui ont fait face à ce problème.

Ce problème a de nombreuses sources, et donc beaucoup de réponses. J’ai vécu chacun d’eux.

1) Si vous avez un plantage quelconque, supprimer le fichier /usr/local/var/postgres/postmaster.pid est probablement nécessaire car postgres ne l’a peut-être pas correctement traité. Mais assurez-vous qu’aucun processus n’est en cours d’exécution.

2) Craig Ringer a souligné dans d’autres articles que le regroupement de postgreSQL par Apple conduit à des problèmes d’installation de pg gem La définition de la variable d’environnement PATH est une solution.

3) Une autre solution consiste à désinstaller et réinstaller le bijou. Une mise à jour de l’infusion peut également être nécessaire.

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

Si votre postmaster.pid est parti et que vous ne pouvez pas redémarrer, faites ceci:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

comme expliqué ici initialement

Je faisais face à un problème similaire ici, j’ai résolu ce problème comme ci-dessous.

En fait, le processus postgres est mort, pour voir le statut de postgres, lancez la commande suivante

 sudo /etc/init.d/postgres status 

Il sera dit que le processus est mort

 sudo /etc/init.d/postgres start 

Pour moi, la solution consistait simplement à redémarrer mon ordinateur. J’ai d’abord essayé de redémarrer avec les services Brew et lorsque cela ne fonctionnait pas, le redémarrage semblait être la meilleure option pour essayer certaines des solutions les plus complexes. Tout a fonctionné comme il se doit après.

Mon problème a fini par être que j’utilisais Gas Mask (un gestionnaire de fichiers hôte pour Mac) et que je n’avais pas d’entrée pour localhost dans le fichier hosts que j’utilisais.

J’ai ajouté:

 127.0.0.1 localhost 

Et cela a résolu mon problème.

Cela m’est arrivé après que mon Mac (High Sierra) ait gelé et que je devais le redémarrer manuellement (appuyez sur le bouton d’alimentation et maintenez-le enfoncé). Tout ce que j’avais à faire pour résoudre ce problème était de redémarrer proprement.

Peut-être que ce n’est pas lié, mais une erreur similaire apparaît lorsque vous postgre à niveau postgre vers une version majeure utilisant brew ; en utilisant les brew info postgresql découvert ce qui a aidé:

 To migrate existing data from a previous major version of PostgreSQL run: brew postgresql-upgrade-database 

J’ai dû chercher ce poste plusieurs fois pour résoudre ce problème. Il existe un autre correctif qui s’appliquera é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. Lorsque vous trouvez des postgres et le pid associé

$ kill pid_number

Je viens de recevoir le même problème car j’ai mis ma machine ( ubuntu ) pour mise à jour et j’ai eu moins d’erreur:

impossible de se connecter au serveur: Pas de fichier ou répertoire de ce type Le serveur est-il exécuté localement et accepte-t-il les connexions sur le socket de domaine Unix “/var/run/postgresql/.s.PGSQL.5432”?

Après avoir terminé le processus de mise à jour au redémarrage, mon erreur système est partie. Et son travail ressemble à du charme comme avant. Je suppose que cela s’est produit lorsque pg a été mis à jour et qu’un autre processus a commencé.

SUPER NEWBIE ALERT: J’apprends seulement le développement web et le tutoriel que je suis en train de suivre, je dois installer Postgres mais je n’ai pas mentionné que je devais l’ exécuter aussi … Une fois que j’ai ouvert l’application Postgres, tout allait bien et dandy.

La réponse de @Jagdish Barabari m’a donné la clé nécessaire pour résoudre ce problème. Il se trouve que deux versions de postgresql étaient installées alors qu’une seule était en cours d’exécution. Purger tous les fichiers postgresql et réinstaller la dernière version a résolu ce problème pour moi.

Les causes de cette erreur sont nombreuses. Localisez donc votre fichier journal et recherchez des indices. Il peut être à /usr/local/var/log/postgres.log ou /usr/local/var/postgres/server.log ou éventuellement ailleurs. Si vous avez installé avec Homebrew, vous pouvez trouver l’emplacement dans ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist .

Je ne suis pas tout à fait sûr de la raison, mais mon installation Postgres a été un peu foutue et certains fichiers ont été supprimés, ce qui a provoqué l’erreur OP.

Malgré le fait que je puisse exécuter des commandes telles que brew service retart postgres et voir les messages appropriés, cette erreur a persisté.

J’ai parcouru la documentation de postgres et constaté que mon fichier /usr/local/var/postgres était totalement vide. Donc j’ai couru le suivant:

 initdb /usr/local/var/postgres 

Il semble que certaines configurations aient eu lieu avec cette commande.

Ensuite, il m’a demandé de lancer ceci:

 postgres -D /usr/local/var/postgres 

Et cela m’a dit qu’un fichier postmaster.pid existe déjà.

J’avais juste besoin de savoir si le armseur pouvait ramasser les configs que je venais de lancer, alors je l’ai testé.

 ls /usr/local/var/postgres 

Cela m’a montré un fichier postmaster.pid. J’ai ensuite brew services stop postgresql et le fichier postmaster.pid a disparu. Puis j’ai fait brew services start postgresql et VIOLA, le fichier est réapparu.

Ensuite, j’ai lancé mon application, qui a en fait trouvé le serveur, mais mes bases de données semblent avoir disparu.

Bien que je sache qu’ils ne sont peut-être pas du tout partis – la nouvelle initialisation que j’ai faite a peut-être créé une nouvelle zone de données, et l’ancienne n’est pas pointée. Je devrais regarder où il en est et le renvoyer ou simplement créer à nouveau mes bases de données.

J’espère que cela t’aides! La lecture des documents postgres m’a beaucoup aidé. Je déteste lire des réponses qui ressemblent à “Coller ça ça marche!” parce que je ne sais pas ce qui se passe et pourquoi.