web-dev-qa-db-fra.com

Psql n'a pas pu se connecter au serveur: aucun fichier ou répertoire de ce type, erreur 5432?

J'essaie d'exécuter psql sur ma machine Vagrant, mais j'obtiens cette 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"?

Remarque: Vagrant 1.9.2Box: ubuntu/trusty64, https://atlas.hashicorp.com/ubuntu/boxes/trusty64

EDIT Les commandes que j'ai utilisées pour installer et exécuter postgres:

  • Sudo apt-get update
  • Sudo apt-get install postgresql
  • Sudo su postgres
  • psql -d postgres -U postgres
45
Saša Kalaba

J'ai eu le même problème, lié à la configuration de mon fichier pg_hba.conf (situé dans /etc/postgresql/9.6/main). Veuillez noter que 9.6 est la version postgresql que j'utilise.

L'erreur elle-même est liée à une mauvaise configuration de postgresql, ce qui provoque le blocage du serveur avant son démarrage.

Je suggérerais de suivre ces instructions:

  1. Certifiez que le service postgresql est en cours d'exécution à l'aide de Sudo service postgresql start 
  2. Exécutez pg_lsclusters à partir de votre terminal
  3. Vérifiez quel est le cluster que vous utilisez, le résultat devrait ressembler à ceci:

    Version - Répertoire de données du propriétaire du statut du port du cluster 

    9.6 ------- main - 5432 online postgres /var/lib/postgresql/9.6/main

    Ne tenez pas compte des signes '---', car ils ne sont utilisés que pour l'alignement . Les informations importantes sont la version et le cluster. Vous pouvez également vérifier si le serveur est en cours d'exécution ou non sur la colonne d'état.

  4. Copiez les informations de la version et du cluster, et utilisez comme suit: pg_ctlcluster <version> <cluster> start, donc dans mon cas, avec la version 9.6 et le cluster 'main', ce serait pg_ctlcluster 9.6 main start
  5. Si quelque chose ne va pas, alors postgresql générera un journal, accessible sur /var/log/postgresql/postgresql-<version>-main.log. Dans mon cas, la commande complète serait donc Sudo nano /var/log/postgresql/postgresql-9.6-main.log.
  6. La sortie devrait montrer quelle est l'erreur.

    2017-07-13 16:53:04 BRT [32176-1] LOG: méthode d'authentification non valide "tous"
    2017-07-13 16:53:04 BRT [32176-2] CONTEXT: ligne 90 du fichier de configuration "/etc/postgresql/9.5/main/pg_hba.conf"
    2017-07-13 16:53:04 BRT [32176-3] FATAL: impossible de charger pg_hba.conf

  7. Corrigez les erreurs et redémarrez le service postgresql via Sudo service postgresql restart et tout devrait bien se passer.

J'ai beaucoup cherché pour trouver cela, le crédit revient à ceci post .

Bonne chance!

76
malvadao

J'ai eu le même problème, mais aucune des réponses ici n'a aidé.

Comment je l'ai réparé (mac)

  • Essayez de démarrer postgresql avec pg_ctl -D /usr/local/var/postgres start 
  • Recherchez le Message d'erreur qui dit quelque chose comme FATAL: could not open directory "pg_tblspc": No such file or directory.
  • Créez ce répertoire manquant mkdir /usr/local/var/postgres/pg_tblspc
  • Répétez depuis la première étape jusqu'à ce que vous ayez créé tous les répertoires manquants.
  • Une fois terminé, essayez de redémarrer postgresql, il pourrait dire FATAL: lock file "postmaster.pid" already exists
  • Supprimer postmaster.pid : rm /usr/local/var/postgres/postmaster.pid
  • Commencez postgres avec: pg_ctl -D /usr/local/var/postgres start
  • Fait
7
martinlasek

Le /etc/postgresql/9.6/main/postgresql.conf indique-t-il que le port est attribué? Sur mon installation Linux Xubuntu par défaut, le mien a montré le port = 5433 pour une raison quelconque, mais je me suis souvenu de la ligne dans ce même fichier qui disait listen_addresses = 'localhost' et décommentait la ligne listen_addresses = '*'. Alors peut-être commencer et vérifier là-bas. J'espère que cela pourra aider.

4
J2112O

Je ne fais que poster ceci pour tous ceux qui se sentent perdus et sans espoir, comme je l’ai fait quand j’ai trouvé cette question. Il semble que parfois, en modifiant certains fichiers de configuration liés à psotgresql, il est possible de modifier accidentellement les autorisations du fichier:

 enter image description here

Notez que pg_hba.conf appartient à root et que les utilisateurs ne peuvent même pas le lire. Cela empêche Postgres d’ouvrir ce fichier et donc de ne pas pouvoir démarrer le serveur, ce qui jettera l’erreur constatée dans la question initiale.

En exécutant

Sudo chmod +r pg_hba.conf

J'ai été capable de rendre ce fichier à nouveau accessible à l'utilisateur postgres, puis après avoir exécuté

Sudo service postgresql start

A pu remettre le serveur en marche.

2
wfgeo

utiliser ci-dessous la commande 

rm -rf/usr/local/var/postgres && initdb/usr/local/var/postgres -E utf8

1
Gaurav Verma

Cela fonctionne pour moi:

pg_ctl -D /usr/local/var/[email protected] stop;
brew services stop [email protected];
brew services start [email protected];
1
MevlütÖzdemir

Ouvrez votre gestionnaire de base de données et exécutez ce script.

update pg_database set datallowconn = 'true' where datname = 'your_database_name';
1
Nasser Abdou

La même chose m’est arrivée lorsque j’avais changé quelque chose dans le fichier /etc/hosts. Après le remettre à 127.0.0.1 localhost cela a fonctionné pour moi.

1
coderanger

J'ai eu la même erreur lorsque je crée la base de données SQL dans une machine virtuelle. J'avais changé la valeur par défaut de /etc/postgresql/9.3/main/postgresql.conf shared_buffers = 200MB à 75% de ma RAM totale. Eh bien, j'ai oublié d'allouer réellement cette RAM dans la machine virtuelle. Lorsque j'ai donné la commande de créer une nouvelle base de données, j'ai reçu la même erreur.

Eteint, a donné au bébé son biberon (RAM) et hop, ça a marché. 

0
CENTURION

J'ai pu résoudre le problème en exécutant:

Sudo systemctl start [email protected]
0
Eugene Lem

il suffit de réinstaller votre pgsql avec la version directe Sudo apt-get install postgresql-9.5 (vous devez supprimer le paquet avant d’installer le nouveau). 

0
Vitaly Kholodov

Dans zsh:

rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8

C'est la seule chose qui a fonctionné pour moi après d'innombrables heures de problèmes.

0
Tucker Watts