web-dev-qa-db-fra.com

Impossible de se connecter au serveur Postgres via les services de brassage

Je cherchais une solution pour cela et je n'ai pas pu trouver de solution de travail.

J'ai installé postgres à l'aide de brew (brew install postgres) dans mon MacBook et je l'exécute actuellement à l'aide des services de brassage (brew services list affiche les postgres en tant que service en cours d'exécution). Cependant, lorsque j'essaie d'exécuter psql j'obtiens l'erreur suivante.

psql: impossible de se connecter au serveur: aucun fichier ou répertoire de ce type Le serveur fonctionne-t-il localement et accepte-t-il les connexions sur le socket de domaine Unix "/tmp/.s.PGSQL.5432"?

Quelqu'un a déjà résolu un problème similaire?

37
leo.fcx

J'ai eu la même erreur et je l'ai corrigée en supprimant le fichier pid de processus:

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

77
Wilson Silva

J'ai rencontré ce problème aujourd'hui. postgres a cessé d'accepter les connexions même si les homebrews pensaient qu'il fonctionnait.

Pour le réparer, j'ai couru,

brew services restart -vvv postgresql

Sortie de cette commande,

==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql)
==> Generated plist for postgresql:
   <?xml version="1.0" encoding="UTF-8"?>
   <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
   <plist version="1.0">
   <dict>
     <key>KeepAlive</key>
     <true/>
     <key>Label</key>
     <string>homebrew.mxcl.postgresql</string>
     <key>ProgramArguments</key>
     <array>
       <string>/usr/local/opt/postgresql/bin/postgres</string>
       <string>-D</string>
       <string>/usr/local/var/postgres</string>
     </array>
     <key>RunAtLoad</key>
     <true/>
     <key>WorkingDirectory</key>
     <string>/usr/local</string>
     <key>StandardErrorPath</key>
     <string>/usr/local/var/log/postgres.log</string>
   </dict>
   </plist>

Alors j'ai pensé, hmm peut-être qu'il y a quelque chose dans ce fichier journal,

tail -n 10 /usr/local/var/log/postgres.log

Assez sur,

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

J'ai donc supprimé ce fichier

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

Et tout a recommencé à fonctionner.

48
Eric Conner

Dans mon cas, le postmaster.pid le fichier n'était même pas là. J'ai pu le faire fonctionner en améliorant les postgres.

brew update
brew upgrade

Ensuite, parce que j'ai mis à jour la version principale de 10 à 11, j'ai également dû exécuter ceci:

brew postgresql-upgrade-database

(source https://github.com/facebook/react-native/issues/18760#issuecomment-410533581 )

12
Nelu

Je combinerais ici les deux réponses de Wilson et Grasshopper.

Vous pouvez vérifier le fichier plist pour le service postgres en utilisant brew services list pour trouver l'emplacement du fichier et juste l'ouvrir dans votre éditeur préféré.

Vous devriez voir la valeur de StandardErrorPath répertoriée comme suit:

<key>StandardErrorPath</key>
<string>/usr/local/var/log/postgres.log</string>

Et puis, vous devez suivre la fin du fichier journal à l'aide de tail -n 100 /usr/local/var/log/postgres.log

Dans mon cas, l'erreur était la suivante:

2017-12-06 11: 51: 16.078 GMT [85476] FATAL: le fichier de verrouillage "postmaster.pid" existe déjà 2017-12-06 11: 51: 16.078 GMT [85476] CONSEIL: Un autre maître de poste (PID 601) fonctionne-t-il répertoire de données "/ usr/local/var/postgres"?

C'est parce que j'ai dû arrêter durement mon Mac et les postgres n'ont pas eu la chance de nettoyer le fichier PID. Supprimez simplement le fichier PID rm /usr/local/var/postgres/postmaster.pid et lancez postgres brew services start postgresql

Un mot d'avertissement: ne supprimez pas ce fichier PID sauf si vous êtes sûr que postgres n'est pas en cours d'exécution. Pour ce faire, exécutez brew services stop postgresql puis attendre le résultat de brew services list pour montrer que les posgres sont à l'état arrêté.

11
real_ate

Ce qui a fonctionné pour moi, c'était de supprimer le /usr/local/var/postgres/ dossier, puis désinstaller et réinstaller postgres

4
António Ferreira

J'ai eu la même erreur lors de l'installation de postgresql93 à partir des versions tap. Inspection du fichier .plist indiqué dans la sortie de brew services list (~/Library/LaunchAgents/homebrew.mxcl.postgresql93.plist) J'ai trouvé le message suivant:

FATAL: le répertoire de données "/ usr/local/var/postgres" a un accès de groupe ou mondial
DÉTAIL: Les autorisations doivent être u = rwx (0700).

Ce qui m'a conduit à cette réponse: le répertoire de données "/ usr/local/var/postgres" a une mauvaise propriété

Après avoir exécuté Sudo chmod -R 700 /usr/local/var/postgres J'ai une erreur différente:

FATAL: impossible d'ouvrir le répertoire "pg_tblspc": aucun fichier ou répertoire de ce type

Ce qui m'a ensuite conduit à: `` pg_tblspc` manquant après l'installation de la dernière version d'OS X (Yosemite ou El Capitan)

Après avoir exécuté mkdir /usr/local/var/postgres/pg_tblspc/ le cluster a démarré avec succès.

3
Grasshopper