el servidor postgres no se inicia, no produce ningún registro, ¿cómo solucionarlo?


33

Estoy iniciando una instancia de postgres 9.3 en un servidor ubuntu 12.04:

~# service postgresql start 

 * The PostgreSQL server failed to start. Please check the log output.
                                                                     [fail]

el inicio falla, pero no deja registro, este archivo está vacío:

tail /var/log/postgresql/postgresql-9.3-main.log 

y no hay otros archivos en este directorio: / var / log / postgresql /

¿Cuál es la mejor manera de solucionar esto?


¿Es esta una nueva instalación de PG o acabas de hacer una actualización? verifique que el usuario de postgres tenga derechos sobre el archivo de configuración pg y el archivo de registro
LinuxDevOps

3
Intente ejecutar postgres de la misma manera que lo hace su script (normalmente su - postgres; /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/datay vea lo que le proporciona. Es posible que deba cambiar el nombre de usuario y las rutas según su configuración.
Jenny D dice Reinstate Monica el

Además de lo que dijo @JennyD, agregaría -d 3al postgrescomando. Esto permitirá una salida de depuración más extensa escrita en el registro. Puede reducir la salida de depuración cambiándola a 1 o 2, o aumentarla cambiando a 4 o 5. Además, ¿cuál es la salida de which pgsql?
zymhan

¿Cómo se instaló PostgreSQL en el servidor y desde dónde? ¿Hay algo en los registros del sistema , por ejemplo / var / log / syslog, / var / log / messages, etc.?
Craig Ringer

66
No entiendo por qué esta pregunta se cerró.
guettli

Respuestas:


53

Intente ejecutarlo manualmente con la depuración habilitada. Esto hará que se ejecute en primer plano e imprima cualquier mensaje de error al error estándar, al tiempo que aumenta la verbosidad.

Creo que esta será la línea de comando correcta para PostgreSQL 9.3 en Ubuntu, pero podría requerir algunos ajustes muy leves (nota: la línea está dividida para facilitar la lectura; puede recombinarla en una sola línea (sin la barra invertida) si lo desea):

/usr/lib/postgresql/9.3/bin/postgres -d 3 -D /var/lib/postgresql/9.3/main \
   -c config_file=/etc/postgresql/9.3/main/postgresql.conf

El comienzo es la ubicación del postgresbinario, luego habilitamos la depuración y la configuramos en el nivel 3 (puede ajustar esto hacia arriba o hacia abajo para aumentar o disminuir la verbosidad). A continuación, especificamos el directorio de datos y el archivo de configuración para comenzar. Estos deberían ser los valores predeterminados para Ubuntu Server 12.04, creo.

Con suerte, eso le dará suficiente información para determinar dónde está el problema.


1
iniciarlo manualmente funciona para mí, pero el uso del servicio aún no lo hace. cambié el directorio de datos predeterminado, ¿hay algo que deba actualizar para que el comando de servicio vuelva a funcionar para iniciar postgres?
chrismarx

1
@chrismarx: el servicecomando es solo un contenedor conveniente alrededor del /etc/init.d/script que realmente inicia y detiene el proceso. Tendrá que mirar ese script para ver qué está haciendo de manera diferente a cuando lo ejecuta manualmente. Hacer algo así bash -x /etc/init.d/postgresql startpodría ser un buen lugar para comenzar su investigación.
Christopher Cashell

3
gracias, lo solucioné, hubo problemas de permisos con el directorio de datos y parece que el servicio también tuvo que ejecutarse con sudo
chrismarx

1
Salvador de la vida. No pude encontrar otra manera de decir por qué PostgreSQL no se inicia, ya que fue porque no pudo acceder a su directorio de datos debido a problemas de permisos.
Aron Lorincz

1
para mí fue permiso de configs / etc / postgresql /
eugene
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.