Поскольку другие ответы касались других альтернатив, думаю, я мог бы предоставить что-нибудь о Mac OS X Server на Lion. Я столкнулся с очень похожей проблемой - в моем случае даже -h localhost
не работал, так как в PostregSQL было отключено сетевое взаимодействие, что, кстати, во многих случаях является очень хорошей идеей. Что касается Mac OS X Server, то он запускает сервер PostgreSQL через launchd
.
Некоторые подсказки при ходьбе:
serveradmin
услуга: postgres
launchd
файл конфигурации: /System/Library/LaunchDaemons/org.postgresql.postgres.plist
- папка базы данных:
/var/pgsql
- папка сокета:
/var/pgsql_socket
Этот файл конфигурации переопределяет несколько директив конфигурации, которые можно найти в postgresql.conf
в папке базы данных. Особенно эти двое:
unix_socket_group
unix_socket_permissions
Вы можете обнаружить, что для запуска сервера используется учетная запись _postgres
, и все также доступно, если активный пользователь является членом группы _postgres
.
Запустив dscl . -read /Groups/_postgres GroupMembership
, вы увидите, что по умолчанию в этой группе есть следующие члены: _devicemgr
_calendar
_teamsserver
_www
Полагаю, у вас есть два варианта. Добавьте себя в группу _postgres или измените файл конфигурации launchd
. Последнее - это просто редактирование простого текста ... Но остерегайтесь безопасности, потому что таким образом вы будете открывать Сервер для того, что соответствует критериям, которые вы изменили (см. Последний абзац).
Первое можно сделать либо с помощью Server.app
, либо с помощью dscl
утилиты командной строки. Первый вариант, вероятно, не нужно ничего добавлять. Просто убедитесь, что вы видите системные учетные записи (Просмотр -> Скрыть / Показать системные учетные записи). Я вроде наркомана из CLI, так что это должно добавить вашего пользователя в группу _postgres
:
sudo dscl . -append /Groups/_postgres GroupMembership $USER
Конечно, вы должны быть осторожны, когда работаете под своей учетной записью, потому что вы предоставляете доступ к своей базе данных Mac OS X Server. Так что либо защитите свою учетную запись _postgres
, либо создайте отдельного пользователя для управления вашей базой данных, либо не сохраняйте ничего личного.