pg_hba - No se puede ejecutar PostgreSQL como servicio de Windows
stack builder postgresql download (8)
El comando runservice solo puede ser ejecutado por el administrador de servicios
Para arreglar mi localhost windows 7 para iniciar Postgres como servicio, usé el siguiente comando para iniciar los datos.
pg_ctl -D "C:/Program Files/PostgreSQL/9.1/data" start
Luego revisé el estado por errores
pg_ctl -D "C:/Program Files/PostgreSQL/9.1/data" status
Si obtiene el error 1063, es más que probable que los permisos, ejecuté el siguiente comando
cacls "C:/Program Files/PostgreSQL/9.1/data" /E /T /C /G postgres:F
luego vuelva a ejecutar el inicio / estado, se mostró todo bien, pero el administrador de servicios aún no iniciaría el servicio
Por lo tanto, en Servicios-> postgresql-> opciones-> inicio de sesión, configuro el inicio de sesión como la cuenta del sistema local en lugar del usuario de postgres, y así funcionó
Tenía esto en mis servicios de Windows:
C:/Program Files/PostgreSQL/8.4/bin/pg_ctl.exe runservice -N "postgresql-8.4" -D "D:/PostgreSQL/8.4/data" -w
Nunca termina de ejecutarse. Pero si lo hice en el shell dos:
C:/Program Files/PostgreSQL/8.4/bin/pg_ctl.exe start -N "postgresql-8.4" -D "D:/PostgreSQL/8.4/data" -w
Tenga en cuenta que solo cambié el "servicio de ejecución" a "inicio" y funciona bien.
¿Alguna idea?
Es necesario que revise sus archivos de registro y el registro de eventos de Windows para obtener algún indicio de cuál es el problema. Si no hay nada en absoluto allí, necesita romper algo como Process Monitor y obtener un seguimiento de pila de donde está colgado.
He tenido este problema en el pasado, y fue que el instalador no configuró los permisos correctamente para el usuario con el que el servicio debía ejecutarse.
Me enfrenté al mismo problema después de mover manualmente los archivos de datos de la base de datos (directorio PG_DATA) sin volver a crear todos los permisos necesarios.
Aquí es cómo resolví mi problema:
1. Verifique los permisos en el antiguo directorio PG_DATA:
cacls "c:/path/to/old/pgdata/dir"
2. Verifique los permisos en el nuevo directorio PG_DATA:
cacls "d:/path/to/NEW/pgdata/dir"
3. Compara salidas de 1. y 2.
Encuentra las diferencias entre usuarios y / o permisos y luego sincronízalos.
Nota: Me resultó más fácil usar el explorer
para el paso de sincronización en lugar de usar cacls
directamente desde la línea de comandos.
Si cambió pg_hba.conf , tal vez se perdió en algún lugar del archivo. Por ejemplo, debe haber CIDR después de IP en ese archivo. Debe ser como 192.168.1.100/32
Si olvidó poner 32, entonces el servidor no se reinicia.
La investigación de los registros de inicio podría ser una pista. Para el problema del caso está en el pg_hba.conf usted podría ver algo como esto:
2018-11-13 00:39:34.841 PST [8284] FATAL: could not load pg_hba.conf
2018-11-13 00:39:34.842 PST [8284] LOG: database system is shut down
Tuve este problema en Windows después de un fallo del sistema. La ejecución del primer comando mostró datos no válidos en C:/Program Files/PostgreSQL/9.1/data/postmaster.pid
. Borrar ese archivo hizo el truco. Reference.
esto me sucedió porque configuré mi directorio de datos para que estuviera en algún lugar donde la cuenta de usuario de Windows de Postgres no tuviera acceso.