Volgens de foutmelding is de psql
commando dat als eerste verschijnt in de $PATH
heeft /tmp
als de hard-coded standaard unix socket directory.
Aangezien de eigenlijke map in feite /var/pgsql_socket
is , moet je het expliciet vertellen in plaats van te vertrouwen op de standaard:
$ psql -h /var/pgsql_socket [other options]
Hetzelfde geldt voor andere opdrachten aan de clientzijde, zoals createdb
, dropdb
, createuser
...
Als u -h
. niet wilt specificeren elke keer kan het in de PGHOST
. worden geplaatst omgevingsvariabele.
Sommige mensen lossen dit ook op door TCP-verbindingen te gebruiken met localhost
in plaats van de Unix-socketdirectory te gebruiken.
De hoofdoorzaak van dit probleem zou zijn dat na installatie van PostgreSQL op Mac OS X, het systeem twee verschillende instanties van de postgres-clientset heeft (de libpq
bibliotheek, psql
en andere bijbehorende hulpprogramma's), een die is gebundeld met MacOS en de andere die wordt geleverd met het PostgreSQL-installatieprogramma.
Daarom is nog een andere methode om uw $PATH
. te wijzigen zodat de psql
geïnstalleerd met PostgreSQL wordt gekozen vóór degene die met het systeem is geïnstalleerd (vermoedelijk /usr/bin/psql
).