O servidor do postgres falha ao iniciar, não produz log, como solucionar problemas?

33

Estou iniciando uma instância do postgres 9.3 em um servidor ubuntu 12.04:

~# service postgresql start 

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

o início falha, mas não deixa log, esse arquivo está vazio:

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

e não há outros arquivos neste diretório: / var / log / postgresql /

qual é a melhor maneira de solucionar isso?

Max L.
fonte
esta é uma nova instalação da página ou você acabou de fazer uma atualização? verificar se o usuário postgres possui direitos sobre o arquivo pg configuração e arquivo de log
LinuxDevOps
3
Tente postgres executando da mesma forma que seu script faz (normalmente su - postgres; /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/datae ver o que ele dá-lhe Você pode precisar de nome e caminhos usuário mudança dependendo de sua configuração..
Jenny D diz Reintegrar Monica
Além do que @JennyD disse, eu acrescentaria -d 3ao postgrescomando. Isso permitirá uma saída de depuração mais extensa gravada no log. Você pode diminuir a saída de depuração alterando-a para 1 ou 2 ou aumentá-la alterando para 4 ou 5. Além disso, qual é a saída which pgsql?
Zymhan 7/04
Como o PostgreSQL foi instalado no servidor e de onde? Existe algo nos logs do sistema , por exemplo, / var / log / syslog, / var / log / messages, etc?
Craig campainha
6
Não entendo por que essa pergunta foi encerrada.
guettli

Respostas:

53

Tente executá-lo manualmente com a depuração ativada. Isso fará com que seja executado em primeiro plano e imprima qualquer mensagem de erro no erro padrão, além de aumentar a verbosidade.

Acredito que esta seja a linha de comando correta para o PostgreSQL 9.3 no Ubuntu, mas pode exigir alguns ajustes muito leves (nota: a linha é dividida para facilitar a leitura; você pode recombinar para uma única linha (sem a barra invertida), se desejar):

/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

O início é a localização do postgresbinário, então habilitamos a depuração e o definimos no nível 3 (você pode ajustar isso para cima ou para baixo para aumentar ou diminuir a verbosidade). Em seguida, especificamos o diretório de dados e o arquivo de configuração para começar. Esses devem ser os padrões do Ubuntu Server 12.04, eu acho.

Felizmente, isso fornecerá informações suficientes para determinar onde está o problema.

Christopher Cashell
fonte
1
iniciá-lo manualmente funciona para mim, mas o serviço ainda não funciona. Eu mudei o diretório de dados padrão, há algo que eu precisaria atualizar para que o comando service funcione novamente para iniciar o postgres?
Chrismarx
1
@chrismarx - O servicecomando é apenas um invólucro conveniente ao redor do /etc/init.d/script que realmente inicia e interrompe o processo. Você precisará olhar para esse script para ver o que ele está fazendo de maneira diferente e quando você o executa manualmente. Fazer algo parecido bash -x /etc/init.d/postgresql startpode ser um bom lugar para começar sua pesquisa.
Christopher Cashell
3
Obrigado, eu tenho este classificado, havia permissões problemas com o diretório de dados, e parece que serviço também teve que ser executados com sudo
chrismarx
1
Lifesaver. Não consegui encontrar outra maneira de explicar por que o PostgreSQL não inicia, pois era porque não podia acessar seu diretório de dados devido a problemas de permissão.
Aron Lorincz
1
para mim foi a permissão de configs / etc / postgresql /
Eugene