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 ).