2011-07-25 6 views
7

Instalé postgres con el instalador de kyngchaos hace un par de meses. Ahora he actualizado a OSX Lion, pero el servidor de la base de datos no puede iniciarse.Lion update eliminó el usuario 'postgres'. Cómo restaurarlo?

Un comentario en el blog de kyngchaos (http://www.kyngchaos.com/blog/2011/20110723_lion) me hizo mirar al usuario 'postgres': ¡ya no existe! Al menos, ya no puedo "sudo su postgres". Entonces me imagino que esa es la razón por la que mi servidor no se ejecuta.

¿Cómo puedo restaurar mejor a ese usuario?

+0

optó por una reinstalación? –

+0

No intenté reinstalar todavía porque kyngchaos dice en su blog que una nueva instalación tampoco funciona aún debido a ese usuario que falta. –

+0

Intenta agregar el usuario, en este caso. Y posiblemente chown -R las carpetas relevantes. –

Respuesta

3

(Respondiendo a mí mismo)

Al final, lo único que tenía que hacer era volver a crear el usuario "postgres". De antemano, enumeré el contenido de /usr/local/pgsql/ y vi que, por ejemplo, el directorio data/ era propiedad del usuario 101 y el grupo postgres. Así que quería atar que Postgres usuario a la 101 ID de usuario:

sudo dscl . -create /Users/postgres 
sudo dscl . -create /Users/postgres UniqueID 101 

(Y después he reiniciado mi mac como no sabía cómo iniciar ese servidor postgres con la mano ... ;-)

+1

'sudo -u postgres PGDATA =/usr/local/pgsql-9.0/data /usr/local/pgsql-9.0/bin/pg_ctl start' para iniciar postgresql sin reiniciar. –

0

Estaba teniendo un problema similar, y mirando a través de system.log en la consola, había varios mensajes sobre permisos en el directorio de datos postgresql. Jugué con chown y otras cosas, pero terminé simplemente reinstalando: todo funciona bien ahora.

2

Creo que, en su comando dscl, en lugar de hacer un -create, desea hacer un -append. Apple tiende a prefijar barras debajo de nombres de usuario daemon. Así que Apple probablemente creó una etiqueta _postgres para el usuario 101. Al hacer un -create, está eliminando el usuario _postgres predeterminado y reemplazándolo con postgres, lo que podría causar otros problemas en el futuro. Mientras que si lo hace un -append, a continuación, puede usuario sea_postgres o postgres para hacer referencia de usuario 101. En cualquier caso, usted debe hacer una -list antes de hacerlo, ya sea un -create o un -append, para que lo sepas la configuración del terreno.

Nota: Todavía estoy con Snow Leopard, así que no puedo comprobar que el usuario 101 es de hecho _postgres, pero espero que Apple todavía está usando las mismas convenciones de nomenclatura como en Leopard & Snow Leopard, y así es como debería funcionar . Si hace un -list, le mostraré lo que necesita saber para confirmar mis sospechas.

+0

Gracias por la advertencia. Afortunadamente, hice esa "lista" de antemano. Había * un * usuario de _postgres, pero tenía el ID de usuario 216 o algo así, y el ID de usuario en mi directorio de postgres era 101. Además, no podía "sudo su postgres" más, por lo que el usuario de postgres-sin-subrayado realmente se había ido . Leí en alguna parte que osx ahora incluye postgres de forma inmediata, probablemente para algo interno, por lo que esa es probablemente la razón subyacente para el usuario de _postgres. –

0

No encontré un usuario adecuado siguiendo la respuesta de @Reinout van Rees en Mountain Lion. Estos son mis pasos para que esto funcione:

  • Descargar e instalar Workgroup Manger
  • sesión en LDAP locales: {servidor: 127.0.01, uname: [su uname], PW: [su PW]}
  • Conjunto Ver-> Mostrar registros del sistema para mostrar todas las cuentas
  • Comprobar postgres no está y no hay otro usuario con id 101.
  • gestor de desbloqueo con el icono de bloqueo
  • Crear nuevo usuario {básica: {name: postgres, ID de usuario: 101, PW: Ninguno, can_admin_server: Falso, access_account: false}, avanzada: {login_shell:/usr/bin/false }}
  • lo dio algunos errores extraños pero al final creado mi usuario
  • postgres de prueba (sudo -u postgres PGDATA=/usr/local/pgsql-9.0/data /usr/local/pgsql-9.0/bin/pg_ctl start)
  • >> Server started
Cuestiones relacionadas