PostgreSQL: falha na inicialização do cluster de banco de dados

15

Ambos C:\PostgreSQLe C:\PostgreSQL\datatêm postgresusuário com acesso total e direitos de administrador.

Executei o postgresql-9.1.2-1-windows.exe do usuário do postgres como administrador. AlvoC:\PostgreSQL

De todas as formas que tento, recebo "A inicialização do cluster de banco de dados falhou".

Questões

  • É possível executar tudo sem ser um serviço do Windows?
  • Existe uma solução alternativa para instalar como serviço do Windows?

Estou tentando configurar o PostGIS para funcionar com o GeoDjango.

Consegui instalar manualmente o PostGIS. Novo no PostgreSQL e estou tendo uma crise de confiança com tudo isso. Vindo do MySQL para PostgreSQL pela primeira vez.


Saída de log pertinente em C: \ Usuários \ 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

Sugestões?

Larry Eitel
fonte
consulte instalar log (que deve estar em algum lugar no disco, provavelmente em% TEMP%)
filiprem
Por favor, veja a saída de log pertinente.
Larry Eitel
O usuário do Windows postgres tem privilégios completos de leitura e gravação em C: \ PostgreSQL \ data?
a_horse_with_no_name
Sim, e por sugestão em outro lugar, dei permissões de modificação de usuários a esse diretório.
Larry Eitel
@LarryEitel: mas " Falha ao garantir que o diretório de dados esteja acessível (C: \ PostgreSQL \ data) " parece indicar o contrário.
a_horse_with_no_name

Respostas:

17

Eu tive o mesmo problema ao instalar o 9.1.4 no Windows 7. Consegui encontrar uma solução online que funcionasse .

Os passos que segui são:

  1. Desinstalar o PostgreSQL
  2. Exclua o usuário do postgres, se ele ainda existir.

    net user postgres /delete
  3. Crie o usuário do postgres com uma senha que você possa lembrar

    net user /add postgres <password>
  4. Adicione o usuário postgres ao grupo Administradores

    net localgroup administrators postgres /add
  5. Adicione o usuário do postgres ao grupo Usuários avançados

    net localgroup "power users" postgres /add
  6. Execute uma janela de comando como o usuário do postgres

    runas /user:postgres cmd.exe
  7. Execute o arquivo de instalação na janela de comando.

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

    Isso deve executar a instalação com sucesso.

  8. Remova o usuário do postgres do grupo Administradores.

    net localgroup administrators postgres /delete
Imraan
fonte
Obrigado pelo feedback. Infelizmente, eu mudei esse projeto para o Mongodb. No momento, não estou em posição de confirmar sua sugestão.
Larry Eitel
Quero confirmar que a solução funcionou para mim. Instalação: Postgres 9.1 de 64 bits e PostGIS 2.0.1 x64
Chris
11
Esse é um problema conhecido com a reinstalação do PostgreSQL que está sendo executado como um serviço, e eu pessoalmente me deparei com a situação que esta resposta soluciona. O instalador deixa para trás uma conta após a remoção ou atualização, mas a segunda instalação não leva isso em consideração; a disparidade de credencial resultante entre instalações cria estragos. A resposta mais comum é a que Imraan dá; desinstalar, remover a conta incorreta e reinstalar.
Avery Payne
@ AveryPayne: alternativamente: lembre-se da senha correta da conta de serviço do postgres. Instalei muito o Postgres em sistemas em que ele já estava instalado e nunca tive problemas com uma conta de serviço existente. O texto no instalador poderia ter sido melhorado no entanto (com 9,2 Postgres não usa uma conta explícita por mais tempo btw)
a_horse_with_no_name
Lembre-se de que, para a etapa 4, administratorsdepende da localidade. Por exemplo, em PT-BR é administradores. E, na etapa 5, "power users"é "usuários avançados".
GuiRitter
1

No meu caso (como vi no arquivo postgresql.log na pasta% temp% do Windows), foi porque o instalador não conseguiu encontrar o doskey.exe, embora o caminho para a pasta c: \ windows \ system32 tenha sido fornecido no diretório caminho da variável de ambiente do windows.
Então, eu abri um prompt de comando, digitei set PATH=%PATH%;c:\windows\system32e executei o instalador no próprio prompt de comando. Funcionou! :)

Nav
fonte
1

Nenhuma das opções acima funcionou para mim. Eu não tinha uso do postgres.

Então eu apaguei / desinstalei tudo. Executou o cmd como administrador.

Em seguida, execute o instalador na linha de comando (como administrador) e selecione um local completamente novo para o diretório de dados.

Agora reinstalei com êxito o postgres, depois de meio dia de brincadeira.

NimChimpsky
fonte
1

Eu tive a mesma mensagem de erro ao tentar instalar o 9.2.4. Meu problema foi porque, embora o servidor Win2k8 tivesse% SYSTEMROOT% \ system32 como parte do caminho, nenhum programa conseguiu "ver" nada em C: \ Windows \ system32. O instalador usa muito o icacls.exe durante a rotina init. Desde que meu caminho foi ferrado, o instalador bombardeou.

Depois de adicionar explicitamente C: \ Windows \ system32 à variável de ambiente Path do SYSTEM e executar novamente o instalador como administrador, tudo funcionou bem.

Marca
fonte
0

Esse problema está relacionado à permissão de gravação na pasta. Crie a pasta / dados no PostgreSQL \ 9.2, por exemplo, e dê permissão total ao usuário. Tente reinstalar novamente.

user37408
fonte