L'erreur indique que l'utilitaire psql ne trouve pas le socket pour se connecter à votre serveur de base de données. Soit vous n'avez pas le service de base de données en arrière-plan, soit le socket est situé ailleurs, ou peut-être le pg_hba.conf
doit être réparé.
Étape 1 :Vérifiez que la base de données est en cours d'exécution
La commande peut varier en fonction de votre système d'exploitation. Mais sur la plupart des systèmes *ix, ce qui suit fonctionnerait, il rechercherait postgres parmi tous les processus en cours d'exécution
ps -ef | grep postgres
Sur mon système, mac osx, cela crache
501 408 1 0 2Jul15 ?? 0:21.63 /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log
La dernière colonne affiche la commande utilisée pour démarrer le serveur et les options.
Vous pouvez consulter toutes les options disponibles pour démarrer le serveur postgres en utilisant ce qui suit.
man postgres
À partir de là, vous verriez que les options -D
et -r
sont respectivement le datadir
&le logfilename
.
Étape 2 :Si le service postgres est en cours d'exécution
Utilisez find
pour rechercher l'emplacement du socket, qui devrait être quelque part dans le /tmp
sudo find /tmp/ -name .s.PGSQL.5432
Si postgres est en cours d'exécution et accepte les connexions socket, ce qui précède devrait vous indiquer l'emplacement du socket. Sur ma machine, il s'est avéré être :
/tmp/.s.PGSQL.5432
Ensuite, essayez de vous connecter via psql en utilisant explicitement l'emplacement de ce fichier, par exemple.
psql -h /tmp/ dbname
Étape 3 :Si le service est en cours d'exécution mais que vous ne voyez pas de socket
Si vous ne trouvez pas le socket, mais voyez que le service est en cours d'exécution, vérifiez que le fichier pg_hba.conf autorise les sockets locaux.
Accédez au datadir
et vous devriez trouver le pg_hba.conf
fichier.
Par défaut, vers le bas du fichier, vous devriez voir les lignes suivantes :
# "local" is for Unix domain socket connections only
local all all trust
Si vous ne le voyez pas, vous pouvez modifier le fichier et redémarrer le service postgres.