Secondo il messaggio di errore, psql
comando che appare per primo nel $PATH
ha /tmp
come directory socket unix predefinita hardcoded.
Poiché la directory effettiva è infatti /var/pgsql_socket
, dovresti dirlo in modo esplicito piuttosto che fare affidamento sull'impostazione predefinita:
$ psql -h /var/pgsql_socket [other options]
Lo stesso vale per altri comandi lato client come createdb
, dropdb
, createuser
...
Se non vuoi specificare -h
ogni volta, può essere inserito nel PGHOST
variabile di ambiente.
Alcune persone risolvono anche questo utilizzando connessioni TCP a localhost
piuttosto che usare la directory socket Unix.
La causa principale di questo problema sarebbe che dopo aver installato PostgreSQL su Mac OS X, il sistema finisce per avere due diverse istanze del set di client postgres (il libpq
libreria, psql
e altre utilità associate), una fornita in bundle con MacOS e l'altra fornita con il programma di installazione di PostgreSQL.
Quindi ancora un altro metodo è cambiare il tuo $PATH
in modo che psql
installato con PostgreSQL viene scelto prima di quello installato con il sistema (presumibilmente /usr/bin/psql
).