他の回答では、Mac OS X ServerについてLionに何か提供できると思います。私は非常に似たような問題に遭遇する - 私の場合でも、多くの場合非常に良いアイデアの方法であるPostregSQLでネットワークが無効になったとして-h localhost
が動作しませんでした。 Mac OS X Serverの場合は、launchd
でPostgreSQLサーバを起動します。
いくつかのヒントあなたの周りに行くように:
serveradmin
サービス:postgres
launchd
設定ファイル:/System/Library/LaunchDaemons/org.postgresql.postgres.plist
- データベースフォルダ:
/var/pgsql
- ソケットフォルダ:
/var/pgsql_socket
コン構成ファイルは、データベースフォルダのpostgresql.conf
にあるいくつかの設定指示を上書きします。特に、これら2:
unix_socket_group
unix_socket_permissions
あなたは_postgres
アカウントは、サーバーを実行するために使用され、アクティブユーザーが_postgres
グループのメンバーである場合、すべてにもアクセス可能であることを見つけることができます。 dscl . -read /Groups/_postgres GroupMembership
を実行することにより
あなたは、グループがこれらのメンバーを持っている、デフォルトではそれを見ることができます:_devicemgr
_calendar
_teamsserver
_www
私はあなたが2つのオプションがありますね。 _postgresグループに自分自身を追加するか、launchd
構成plistファイルを変更してください。後では単純なテキスト編集です...しかし、セキュリティに注意してください。この方法では、変更した条件を満たすものにサーバーを開くことになります(最後の段落を参照)。
前者はServer.app
またはdscl
コマンドラインユーティリティで実行できます。最初のオプションはおそらく何も追加する必要はありません。システムアカウント(表示 - >システムアカウントの非表示/表示)が表示されていることを確認してください。私は、これは_postgres
グループにユーザーを追加する必要がありCLI中毒のようなものだ:
もちろん
sudo dscl . -append /Groups/_postgres GroupMembership $USER
あなたのMac OS X Serverデータベースへのアクセス権を与えているので、あなたは、あなたのアカウントで実行、あなたは注意する必要がありますバックエンド。したがって、_postgres
アカウントを保護するか、別のユーザーを作成してデータベースを操作するか、そこにプライベートなものを保存しないでください。
'-h'スイッチの+1は、ローカル接続(最初のスラッシュ)にも有効です。 Unixドメインソケットのパスは、 '' unix_socket_directory'(http://www.postgresql.org/docs/current/static/runtime-config-connection.html#GUC-UNIX-SOCKET-DIRECTORY)の 'postgresql 'プロパティによって決まります.conf'。 –
'unix_socket_directory'プロパティは空にすることができます(私はそれが設定されたことは見たことがありません)。その場合、おそらくデフォルトは/ tmp /になります。 – wildplasser
チップをありがとう - 私はpostgresの標準OS Xパッケージを使用しています。これはUNIXドメインのソケット設定を説明しています。 – Wells