Selon le message d'erreur, le psql
commande qui apparaît en premier dans le $PATH
a /tmp
comme répertoire de socket Unix par défaut codé en dur.
Puisque le répertoire réel est en fait /var/pgsql_socket
, vous devez le dire explicitement plutôt que de vous fier à la valeur par défaut :
$ psql -h /var/pgsql_socket [other options]
Il en va de même pour les autres commandes côté client comme createdb
, dropdb
, createuser
...
Si vous ne voulez pas spécifier -h
à chaque fois, il peut être mis dans le PGHOST
variable d'environnement.
Certaines personnes résolvent également ce problème en utilisant des connexions TCP à localhost
plutôt que d'utiliser le répertoire socket Unix.
La cause principale de ce problème serait qu'après l'installation de PostgreSQL sur Mac OS X, le système finit par avoir deux instances différentes de l'ensemble de clients postgres (le libpq
bibliothèque, psql
et autres utilitaires associés), l'un fourni avec MacOS et l'autre fourni avec le programme d'installation de PostgreSQL.
Par conséquent, une autre méthode consiste à modifier votre $PATH
pour que le psql
installé avec PostgreSQL est choisi avant celui installé avec le système (vraisemblablement /usr/bin/psql
).