PostgreSQL: la inicialización del clúster de la base de datos falló

15

Ambos C:\PostgreSQLy C:\PostgreSQL\datatienen postgresusuario con acceso completo y derechos de administrador.

Ejecuté postgresql-9.1.2-1-windows.exe desde el usuario de postgres como administrador. ObjetivoC:\PostgreSQL

Cada vez que lo intento, aparece "La inicialización del clúster de la base de datos falló".

Preguntas

  • ¿Está bien ejecutar todo sin ser un servicio de Windows?
  • ¿Hay una solución alternativa para instalar como servicio de Windows?

Estoy tratando de configurar PostGIS para que funcione con GeoDjango.

Pude instalar manualmente PostGIS. Nuevo en PostgreSQL y estoy teniendo una crisis de confianza sobre todo esto. Viniendo de MySQL a PostgreSQL por primera vez.


Salida de registro pertinente de C: \ Users \ Larry \ AppData \ Local \ Temp \ install-postgresql.log:

WScript.Network initialized...
Called IsVistaOrNewer()...
    'winmgmts' object initialized...
    Version:6.1
    MajorVersion:6
Ensuring we can read the path C: (using icacls) to Larry:
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Called IsVistaOrNewer()...
    'winmgmts' object initialized...
    Version:6.1
    MajorVersion:6
Ensuring we can read the path C:\PostgreSQL (using icacls) to Larry:
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Called IsVistaOrNewer()...
    'winmgmts' object initialized...
    Version:6.1
    MajorVersion:6
Ensuring we can read the path C:\PostgreSQL\data (using icacls) to Larry:
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Called IsVistaOrNewer()...
    'winmgmts' object initialized...
    Version:6.1
    MajorVersion:6
Ensuring we can write to the data directory (using icacls) to  Larry:
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Failed to ensure the data directory is accessible (C:\PostgreSQL\data)
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Called Die(Failed to initialise the database cluster with initdb)...
Failed to initialise the database cluster with initdb

Sugerencias?

Larry Eitel
fuente
vea el registro de instalación (debería estar en algún lugar del disco, probablemente en% TEMP%)
filiprem
Por favor vea la salida de registro pertinente.
Larry Eitel
¿El usuario de Windows de postgres tiene privilegios completos de lectura y escritura en C: \ PostgreSQL \ data?
a_horse_with_no_name
Sí, y por sugerencia en otro lugar, le di a los usuarios permisos para modificar ese directorio.
Larry Eitel
@LarryEitel: pero " No se pudo garantizar que el directorio de datos sea accesible (C: \ PostgreSQL \ data) " parece indicar lo contrario.
a_horse_with_no_name

Respuestas:

17

Tuve el mismo problema al instalar 9.1.4 en Windows 7. Logré encontrar una solución en línea que funcionara .

Los pasos que seguí son:

  1. Desinstalar PostgreSQL
  2. Elimine el usuario de postgres si aún existe.

    net user postgres /delete
  3. Crea el usuario de postgres con una contraseña que puedas recordar

    net user /add postgres <password>
  4. Agregue el usuario postgres al grupo Administradores

    net localgroup administrators postgres /add
  5. Agregue el usuario postgres al grupo Usuarios avanzados

    net localgroup "power users" postgres /add
  6. Ejecuta una ventana de comando como el usuario postgres

    runas /user:postgres cmd.exe
  7. Ejecute el archivo de instalación desde la ventana de comandos.

    C:\Download\postgresql-9.1.4-1-windows.exe

    Esto debería ejecutar la instalación con éxito.

  8. Elimine el usuario postgres del grupo Administradores.

    net localgroup administrators postgres /delete
Imraan
fuente
Gracias por los comentarios. Desafortunadamente, desde entonces cambié este proyecto a Mongodb. Por el momento no estoy en condiciones de confirmar su sugerencia.
Larry Eitel
Quiero confirmar que la solución funcionó para mí. Configuración: Postgres 9.1 64 bit y PostGIS 2.0.1 x64
Chris
1
Este es un problema bien conocido con la reinstalación de PostgreSQL que se ejecuta como un servicio, y personalmente me he encontrado con la situación que aborda esta respuesta. El instalador deja una cuenta tras la eliminación o actualización, pero la segunda instalación no tiene esto en cuenta; La disparidad de credenciales resultante entre las instalaciones crea estragos. La respuesta más común es la que da Imraan; desinstalar, eliminar la cuenta infractora, luego reinstalar.
Avery Payne
@AveryPayne: alternativamente: recuerde la contraseña correcta para la cuenta de servicio de postgres. He instalado mucho Postgres en sistemas donde ya estaba instalado y nunca tuve un problema con una cuenta de servicio existente. La redacción en el instalador podría haber mejorado, aunque (con 9.2 Postgres no utiliza una cuenta explícita por más tiempo por cierto)
a_horse_with_no_name
Tenga en cuenta que, para el paso 4, administratorsdepende de la configuración regional. Por ejemplo, en PT-BR es administradores. Y, en el paso 5, "power users"es "usuários avançados".
GuiRitter
1

En mi caso (como vi en el archivo postgresql.log en la carpeta% temp% de Windows), fue porque el instalador no pudo encontrar doskey.exe a pesar de que la ruta a la carpeta c: \ windows \ system32 estaba en Entorno de ruta variable de windows.
Entonces abrí un símbolo del sistema, escribí set PATH=%PATH%;c:\windows\system32y ejecuté el instalador desde el símbolo del sistema. ¡Funcionó! :)

Nav
fuente
1

Nada de lo anterior funcionó para mí. No tenía uso postgres.

Así que eliminé / desinstalé todo. Ran cmd como administrador.

Luego ejecutó el instalador desde la línea de comandos (como administrador) y seleccionó una ubicación completamente nueva para el directorio de datos.

Ahora he reinstalado con éxito postgres, después de medio día de jiggery pokery.

NimChimpsky
fuente
1

Recibí el mismo mensaje de error al intentar instalar 9.2.4. Mi problema fue porque, aunque el servidor Win2k8 tenía% SYSTEMROOT% \ system32 como parte de la ruta, ningún programa podía "ver" nada en C: \ Windows \ system32. El instalador usa mucho icacls.exe durante la rutina de inicio. Como mi camino estaba arruinado, el instalador bombardeó.

Una vez que agregué explícitamente C: \ Windows \ system32 a la variable de entorno Path del SYSTEM y volví a ejecutar el instalador como administrador, todo funcionó bien.

marca
fuente
0

Este problema tiene que ver con el permiso de escritura en la carpeta. Cree la carpeta / datos en PostgreSQL \ 9.2 por ejemplo, y otorgue permiso completo al usuario. Intente reinstalar nuevamente.

usuario37408
fuente