( Nota: Esta questão foi completamente reescrita de sua forma original, então reflete o problema real e ajudará outros a encontrar uma solução para o mesmo problema).
Ainda não consegui instalar o PostgreSQL com sucesso no meu computador Windows 7 Ultimate x64. Veja esta pergunta anterior para um pouco de história.
Eu fiz uma nova instilação de 9.2 e o único erro que recebi foi este:
Ele lê:
"Problema ao executar a etapa pós-instalação. A instalação pode não ser concluída corretamente. Falha na inicialização do cluster de banco de dados".
Isso ocorre mesmo depois de fazer uma desinstalação manual completa do PostgreSQL e do pgAmdin-III:
- Executou o desinstalador do PostgreSQL, que falhou com o erro
Error stopping service postgresql-x64-9.2
. - Removidas todas as entradas de registro relacionadas ao PostgreSQL para PostgreSQL sob
HKEY_LOCAL_MACHINE\SOFTWARE
eHKEY_CURRENT_USER\SOFTWARE
- Removida a
postgres
conta de usuário usandonet user postgres /delete
um prompt de comando do administrador (shift-direito clicado em "Prompt de comando" no menu Iniciar, escolha "Executar como administrador") - Removido o
postgres
perfil do usuário - Excluiu o
C:\Program Files\PostgreSQL\
diretório, incluindo o diretório de dados em %appdata% - Removidas algumas entradas de registro do PgAdmin-III que apontavam para o PostgreSQL
- Removida a conta de serviço para postgres de
services.msc
Quando reinicio e tento o instalador novamente, ele falha com a mesma mensagem.
O install-postgresql.log
arquivo de %TEMP%
contém:
Executing cscript //NoLogo "C:\Program Files\PostgreSQL\9.2/installer/server/initcluster.vbs" "NT AUTHORITY\NetworkService" "postgres" "****" "C:\Program Files\PostgreSQL\9.2" "C:\Program Files\PostgreSQL\9.2\data" 5432 "DEFAULT"
Script exit code: 1
então outro erro um pouco mais tarde:
creating template1 database in C:/Program Files/PostgreSQL/9.2/data/base/1 ... initdb: could not execute command ""C:/Program Files/PostgreSQL/9.2/bin/postgres.exe" --boot -x1 -F ": No error
Veja o download completo do arquivo de log do instalador aqui .
Parece que a causa raiz desse problema pode ter sido que o computador do @Celeritas tinha um valor incorreto para a
COMSPEC
variável de ambiente. Ele tinha um ponto e vírgula à direita, então, em vez do normal:isso foi:
Essa diferença de um caractere é suficiente. O acima não é um caminho de prompt de comando válido, portanto, as
popen()
chamadas estavam falhando. Infelizmente, em vez de algo útil como:em vez disso, relata o erro deliciosamente útil
No error
:Veja relacionado:
Eu relatei isso para a equipe de instalação e escrevi uma entrada wiki para descrevê-lo. Veja a postagem do blog .
O problema acabou por ser resolvido por:
COMSPEC
variável de ambienteembora houvesse muito mais antes disso que não deveria ser realmente necessário para resolver isso, incluindo fazer uma desinstalação manual total e limpa do PostgreSQL manualmente.
Agora eu só quero encontrar as pessoas que escreveram o programa que modificou essa variável de ambiente.
desta resposta https://dba.stackexchange.com/a/248584/185153
Se você estiver no Windows 10 com a página de código UTF-8 nas configurações regionais (imagem no link acima), a causa raiz é que:
initdb
initdb
verifica a versão como se estivesse chamandopostgres -V
postgres -V
ainda não reconheceCPutf8
e retorna um resultado sem correspondência.Até que seja corrigido corretamente, você pode apenas desmarcar a caixa de página de código UTF-8 e reiniciar, estará tudo bem.
Isso também pode ser reproduzido no PostgreSQL 12.
Parabéns a @simon por essa descoberta.
Lutando com este problema por dias.Finalmente consegui ajuda da equipe EDB Meu problema foi resolvido seguindo os seguintes passos:
1) Abra o prompt de comando e vá para o seguinte diretório.
cd "C:\Arquivos de Programas\PostgreSQL\10\bin"
2) Uma vez dentro do diretório "C:\Program Files\PostgreSQL\10\bin", execute o seguinte comando.
.\initdb.exe -D "C:\Arquivos de Programas\PostgreSQL\10\data"
3) Ao final deste comando você será promovido a executar um comando pg_ctl para iniciar o cluster Postgres. Por favor, execute o comando e quando você receber uma mensagem quando o servidor for iniciado, você estará pronto para usar o banco de dados Postgres.
Nota: Em vez de 10 usuários, seja qual for a versão que você instalou. Se o comando pg_ctl na terceira etapa apresentar um erro após executá-lo no diretório \bin, tente executá-lo no diretório \data. Após o processo acima, execute novamente o instalador.
Problema:
A instalação do 13.1.1 no Windows Server 2019 falhou com a mensagem
Minha variável de ambiente COMSPEC foi configurada corretamente.
Minha configuração de página de código UTF-8 foi desativada.
A invocação manual do initdb falhou com o seguinte:
Causa provável:
Unidade D: é formatada usando ReFS. A inicialização em uma unidade NTFS funcionou sem problemas.
Solução:
Inicialize o banco de dados na unidade C:\PostgreSQL e copie a pasta para D:\PostgreSQL.
Abra o terminal como usuário normal (não administrador) e execute:
Inicie um shell psql e faça login com o usuário myUser. Você pode então criar um usuário postgres, se desejar:
Para as pessoas que ainda estão lutando com isso em 2022. A única coisa que funcionou para mim no Windows 10 é selecionar a América Inglesa como local em vez de minha própria localidade latina.