Theo thông báo lỗi, psql lệnh xuất hiện đầu tiên trong $PATH có /tmp làm thư mục ổ cắm unix mặc định được mã hóa cứng.
Vì thư mục thực trên thực tế là /var/pgsql_socket , bạn nên nói với nó một cách rõ ràng thay vì dựa vào mặc định:
$ psql -h /var/pgsql_socket [other options]
Điều tương tự cũng áp dụng cho các lệnh phía máy khách khác như createdb , dropdb , createuser ...
Nếu bạn không muốn chỉ định -h mỗi lần, nó có thể được đưa vào PGHOST biến môi trường.
Một số người cũng giải quyết vấn đề này bằng cách sử dụng kết nối TCP tới localhost thay vì sử dụng thư mục Unix socket.
Nguyên nhân gốc rễ của vấn đề này là sau khi cài đặt PostgreSQL trên Mac OS X, hệ thống sẽ có hai phiên bản khác nhau của tập khách hàng postgres (libpq thư viện, psql và các tiện ích liên quan khác), một tiện ích đi kèm với MacOS và tiện ích khác đi kèm với trình cài đặt PostgreSQL.
Do đó, một phương pháp khác là thay đổi $PATH của bạn để psql được cài đặt với PostgreSQL được chọn trước khi cài đặt với hệ thống (có lẽ là /usr/bin/psql ).