エラーメッセージによると、psql
$PATH
の最初に表示されるコマンド /tmp
があります ハードコードされたデフォルトのUNIXソケットディレクトリとして。
実際のディレクトリは実際には/var/pgsql_socket
であるため 、デフォルトに依存するのではなく、明示的に伝える必要があります:
$ psql -h /var/pgsql_socket [other options]
createdb
などの他のクライアント側コマンドにも同じことが当てはまります。 、dropdb
、createuser
...
-h
を指定したくない場合 毎回、PGHOST
に入れることができます 環境変数。
localhost
へのTCP接続を使用してこれを解決する人もいます。 Unixソケットディレクトリを使用するのではなく。
この問題の根本的な原因は、Mac OS XにPostgreSQLをインストールした後、システムにpostgresクライアントセットの2つの異なるインスタンス(libpq
)が含まれることです。 ライブラリ、psql
およびその他の関連ユーティリティ)、1つはMacOSにバンドルされており、もう1つはPostgreSQLインストーラーに付属しています。
したがって、さらに別の方法は、$PATH
を変更することです。 psql
PostgreSQLでインストールされたものは、システムでインストールされたものよりも先に選択されます(おそらく/usr/bin/psql
。