Como otras respuestas dirigidas a otras alternativas, creo que podría proporcionar algo sobre Mac OS X Server en Lion. Me encuentro con un problema muy similar: en mi caso, incluso -h localhost
no funcionaba, ya que la conexión de red estaba deshabilitada en PostregSQL, que por cierto, en muchos casos, es una muy buena idea. Lo que ocurre con Mac OS X Server es que lanza el servidor PostgreSQL a través del launchd
.
Algunos consejos a medida que avanza en torno a:
serveradmin
servicio: postgres
launchd
fichero de configuración: /System/Library/LaunchDaemons/org.postgresql.postgres.plist
- carpeta de la base:
/var/pgsql
- carpeta de socket:
/var/pgsql_socket
Eso estafa El archivo de figuración anula varias directivas de configuración que se pueden encontrar en postgresql.conf
en la carpeta de la base de datos. Especialmente estos dos:
unix_socket_group
unix_socket_permissions
Puede encontrar que _postgres
cuenta se utiliza para ejecutar el servidor y todo también es accesible si el usuario activa es miembro del grupo _postgres
.
Mediante la ejecución de dscl . -read /Groups/_postgres GroupMembership
se puede ver que, por defecto ese grupo tiene estos miembros: _devicemgr
_calendar
_teamsserver
_www
supongo que tienes dos opciones. Añádese al grupo _postgres o cambie el archivo de configuración launchd
. Lo último es simplemente edición de texto sin formato ...Pero ten cuidado con la seguridad, porque de esta manera estarás abriendo Servidor según lo que cumpla con los criterios que cambies (mira el último párrafo).
El primero se puede hacer a través de Server.app
o mediante la utilidad de línea de comandos dscl
. La primera opción probablemente no necesita agregar nada. Solo asegúrese de que pueda ver las Cuentas del sistema (Ver -> Ocultar/Mostrar cuentas del sistema). Soy una especie de adicto a la CLI lo que este debe agregar su usuario _postgres
grupo:
sudo dscl . -append /Groups/_postgres GroupMembership $USER
supuesto, usted debe tener cuidado con lo ejecuta bajo su cuenta a continuación, debido a que está dando acceso a su base de datos del servidor de Mac OS X back-end. Por lo tanto, o bien asegure su cuenta _postgres
o cree un usuario diferente para manipular su base de datos o no guarde nada privado allí.
+1 para el conmutador '-h', que también funciona para las conexiones locales (barra inclinada al principio). La ruta del socket del dominio Unix está determinada por la propiedad ['unix_socket_directory'] (http://www.postgresql.org/docs/current/static/runtime-config-connection.html#GUC-UNIX-SOCKET-DIRECTORY) en' postgresql .conf'. –
La propiedad 'unix_socket_directory' puede estar vacía (nunca la he visto establecer), en cuyo caso, presumiblemente, es/tmp /. – wildplasser
Gracias por el consejo: estoy usando los paquetes OS X estándar de postgres, lo que explica la configuración del socket del dominio Unix. – Wells