エラーは、psqlユーティリティがデータベースサーバーに接続するためのソケットを見つけることができないことを示しています。データベースサービスがバックグラウンドで実行されていないか、ソケットが別の場所にあるか、またはpg_hba.conf
である可能性があります。 修正する必要があります。
ステップ1:データベースが実行されていることを確認します
コマンドは、オペレーティングシステムによって異なる場合があります。ただし、ほとんどの* ixシステムでは、以下が機能し、実行中のすべてのプロセスからpostgresを検索します
ps -ef | grep postgres
私のシステム、mac osxでは、これが吐き出されます
501 408 1 0 2Jul15 ?? 0:21.63 /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log
最後の列は、サーバーの起動に使用されるコマンドとオプションを示しています。
以下を使用して、postgresサーバーを起動するために使用できるすべてのオプションを確認できます。
man postgres
そこから、オプション-D
が表示されます および-r
それぞれdatadir
です &logfilename
。
ステップ2:postgresサービスが実行されている場合
find
を使用する /tmp
のどこかにあるはずのソケットの場所を検索します
sudo find /tmp/ -name .s.PGSQL.5432
postgresが実行中であり、ソケット接続を受け入れている場合、上記はソケットの場所を示しているはずです。私のマシンでは、次のようになりました:
/tmp/.s.PGSQL.5432
次に、このファイルの場所を明示的に使用して、psql経由で接続してみてください。例:
psql -h /tmp/ dbname
ステップ3:サービスは実行されているが、ソケットが表示されない場合
ソケットが見つからないが、サービスが実行されていることを確認する場合は、pg_hba.confファイルでローカルソケットが許可されていることを確認してください。
datadir
を参照します pg_hba.conf
が見つかります ファイル。
デフォルトでは、ファイルの下部近くに次の行が表示されます。
# "local" is for Unix domain socket connections only
local all all trust
表示されない場合は、ファイルを変更して、postgresサービスを再起動できます。