il server Postgres non si avvia, non produce alcun registro, come risolvere?


33

Sto avviando un'istanza di Postgres 9.3 su un server Ubuntu 12.04:

~# service postgresql start 

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

l'avvio non riesce, ma non lascia alcun registro, questo file è vuoto:

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

e non ci sono altri file in questa directory: / var / log / postgresql /

qual è il modo migliore per risolvere questo problema?


si tratta di una nuova installazione di PG o hai appena fatto un aggiornamento? controlla che l'utente postgres abbia i diritti sul file di configurazione pg e sul file di registro
LinuxDevOps

3
Prova a eseguire postgres allo stesso modo del tuo script (normalmente su - postgres; /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/datae vedi cosa ti dà. Potrebbe essere necessario cambiare il nome utente e i percorsi a seconda della configurazione.
Jenny D dice Reinstate Monica

Oltre a ciò che ha detto @JennyD, aggiungerei -d 3al postgrescomando. Ciò consentirà un output di debug più esteso scritto nel registro. È possibile ridurre l'output di debug modificandolo in 1 o 2 o aumentandolo modificandolo in 4 o 5. Inoltre, qual è l'output di which pgsql?
zymhan,

Come è stato installato PostgreSQL sul server e da dove? C'è qualcosa nei registri di sistema , ad esempio / var / log / syslog, / var / log / messages, ecc?
Craig Ringer,

6
Non capisco perché questa domanda sia stata chiusa.
Guettli,

Risposte:


53

Prova a eseguirlo manualmente con il debug abilitato. Ciò lo farà funzionare in primo piano e stampare eventuali messaggi di errore su errore standard, aumentando anche la verbosità.

Credo che questa sarà la riga di comando corretta per PostgreSQL 9.3 su Ubuntu, ma potrebbe richiedere una leggera modifica (nota: la linea è divisa per leggibilità; puoi ricombinarla su una singola linea (senza la barra rovesciata) se vuoi):

/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

L'inizio è la posizione del postgresbinario, quindi abilitiamo il debug e lo impostiamo al livello 3 (puoi regolarlo su o giù per aumentare o diminuire la verbosità). Successivamente specifichiamo la directory dei dati e il file di configurazione per iniziare. Questi dovrebbero essere i valori predefiniti per Ubuntu Server 12.04, credo.

Speriamo che ti fornisca abbastanza informazioni per determinare dove si trova il problema.


1
avviarlo manualmente funziona per me, ma l'utilizzo del servizio non lo fa ancora. ho cambiato la directory dei dati predefinita, c'è qualcosa che dovrei aggiornare per far funzionare di nuovo il comando di servizio per avviare Postgres?
Chrismarx,

1
@chrismarx - Il servicecomando è solo un comodo wrapper per lo /etc/init.d/script che in realtà avvia e arresta il processo. Dovrai guardare quello script per vedere cosa sta facendo diversamente da quando lo esegui manualmente. Fare qualcosa del genere bash -x /etc/init.d/postgresql startpotrebbe essere un buon posto per iniziare la tua ricerca.
Christopher Cashell,

3
grazie, ho risolto il problema, c'erano problemi di permessi con la directory dei dati e sembra che anche il servizio debba essere eseguito con sudo
chrismarx,

1
Salvavita. Non sono riuscito a trovare nessun altro modo per capire perché PostgreSQL non si avvii, perché non è stato in grado di accedere alla sua directory di dati a causa di problemi di autorizzazione.
Aron Lorincz,

1
per me è stato il permesso di configs / etc / postgresql /
eugene
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.