これは本当にファイルパーミッションエラーのように見えます。 Unixドメインソケットはファイルであり、他のソケットと同じようにユーザー権限を持っています。データベースにアクセスしようとしているOSXユーザーには、ソケットファイルにアクセスするためのファイル権限がないようです。これを確認するために、Ubuntuとpsqlでいくつかのテストを実行して、同じエラーを生成しようとしました(以下に含まれています)。
ソケットファイルとそのディレクトリ/var
の権限を確認する必要があります および/var/pgsql_socket
。 Railsアプリ(OSXユーザー)には、これらのディレクトリに対する実行(x)権限(できれば全員に権限を付与)が必要であり、ソケットには完全な権限(wrx)が必要です。 ls -lAd <file>
を使用できます これらをチェックするには、それらのいずれかがシンボリックリンクである場合は、ファイルをチェックするか、リンクが指すディレクトリを指定する必要があります。
ディレクトリの権限は自分で変更できますが、ソケットはpostgresql.conf
のpostgresによって構成されます。 。これは、pg_hba.conf
と同じディレクトリにあります。 (どれを理解する必要があります)。権限を設定したら、postgresqlを再起動する必要があります。
# postgresql.conf should contain...
unix_socket_directory = '/var/run/postgresql' # dont worry if yours is different
#unix_socket_group = '' # default is fine here
#unix_socket_permissions = 0777 # check this one and uncomment if necessary.
編集:
私はグーグルで簡単な検索を行いましたが、それが関連性があるかどうかを調べることができます。これにより、find
が試行される可能性があります。 構成ファイルが失敗します。
http://www.postgresqlformac.com/server/howto_edit_postgresql_confi.html
エラーメッセージ:
pg_hba.confにユーザーが見つかりません
psql: FATAL: no pg_hba.conf entry for host "[local]", user "couling", database "main", SSL off
ユーザーがパスワード認証に失敗しました:
psql: FATAL: password authentication failed for user "couling"
unixソケットファイルがありません:
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Unixソケットは存在しますが、サーバーはそれをリッスンしていません。
psql: could not connect to server: Connection refused
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
UNIXソケットファイルの不正なファイル権限 :
psql: could not connect to server: Permission denied
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?