Zgodnie z komunikatem o błędzie, psql
polecenie, które pojawia się jako pierwsze w $PATH
ma /tmp
jako zakodowany na stałe domyślny katalog gniazd uniksowych.
Ponieważ rzeczywisty katalog to w rzeczywistości /var/pgsql_socket
, powinieneś powiedzieć to wprost, zamiast polegać na domyślnym:
$ psql -h /var/pgsql_socket [other options]
To samo dotyczy innych poleceń po stronie klienta, takich jak createdb
, dropdb
, createuser
...
Jeśli nie chcesz podawać -h
za każdym razem można go umieścić w PGHOST
zmienna środowiskowa.
Niektórzy rozwiązują ten problem, używając połączeń TCP do localhost
zamiast używania katalogu gniazd uniksowych.
Podstawową przyczyną tego problemu jest to, że po zainstalowaniu PostgreSQL w systemie Mac OS X, system ma dwie różne instancje zestawu klienta postgres (libpq
biblioteka, psql
i inne powiązane narzędzia), jeden, który jest dołączony do MacOS, a drugi, który jest dostarczany z instalatorem PostgreSQL.
Dlatego kolejną metodą jest zmiana $PATH
aby psql
zainstalowany z PostgreSQL zostanie wybrany przed instalacją z systemem (przypuszczalnie /usr/bin/psql
).