由於其他答案解決了其他選擇,我想我可以在Lion上提供關於Mac OS X Server的一些信息。我遇到了非常類似的問題 - 在我的情況下,即使-h localhost
沒有工作,因爲PostregSQL中的網絡被禁用,這在很多情況下都是非常好的主意。 Mac OS X Server的事情是它通過launchd
啓動PostgreSQL服務器。
一些提示,你出去轉轉:
serveradmin
服務:postgres
launchd
配置文件:/System/Library/LaunchDaemons/org.postgresql.postgres.plist
- 數據庫文件夾:
/var/pgsql
- 套接字文件夾:
/var/pgsql_socket
那CON配置文件將覆蓋可在數據庫文件夾下的postgresql.conf
中找到的幾個配置指令。尤其是這兩個:
unix_socket_group
unix_socket_permissions
您可以找到_postgres
帳戶用於運行服務器,一切都還可以訪問如活躍的用戶是_postgres
組的成員。
通過運行dscl . -read /Groups/_postgres GroupMembership
你可以看到,默認情況下該組有以下成員:_devicemgr
_calendar
_teamsserver
_www
我想你有兩個選擇。將自己添加到_postgres組或更改launchd
配置plist文件。後者只是純文本編輯...但要小心安全性,因爲這樣你就可以打開Server來滿足你改變的標準(見最後一段)。
前者可以通過Server.app
或通過dscl
命令行實用程序完成。第一個選項可能不需要添加任何內容。只要確保您可以看到系統帳戶(查看 - >隱藏/顯示系統帳戶)。我是那種CLI迷的所以這應該將用戶添加到_postgres
組:
sudo dscl . -append /Groups/_postgres GroupMembership $USER
當然是你自己的帳戶下運行,那麼因爲你給訪問你的Mac OS X Server數據庫,你要小心後端。所以要麼保證你的賬號安全,要麼創建單獨的用戶來操縱你的數據庫,或者不要在那裏保存任何私人信息。
對於'-h'開關+1,對於本地連接也是如此(在開始處正斜槓)。 Unix域套接字的路徑由'postgresql'中的['unix_socket_directory'](http://www.postgresql.org/docs/current/static/runtime-config-connection.html#GUC-UNIX-SOCKET-DIRECTORY)屬性確定.conf'。 –
'unix_socket_directory'屬性可以是空的(我從來沒有見過它設置),在這種情況下,它可能默認爲/ tmp /。 – wildplasser
感謝您的提示 - 我正在使用來自postgres的標準OS X軟件包,它解釋了unix域套接字設置。 – Wells