AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 28836
Accepted
Celeritas
Celeritas
Asked: 2012-11-17 17:08:57 +0800 CST2012-11-17 17:08:57 +0800 CST 2012-11-17 17:08:57 +0800 CST

Pg install: "Falha na inicialização do cluster de banco de dados"

  • 772

( 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:

erro ao instalar

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\SOFTWAREeHKEY_CURRENT_USER\SOFTWARE
  • Removida a postgresconta de usuário usando net user postgres /deleteum prompt de comando do administrador (shift-direito clicado em "Prompt de comando" no menu Iniciar, escolha "Executar como administrador")
  • Removido o postgresperfil 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 deservices.msc

Quando reinicio e tento o instalador novamente, ele falha com a mesma mensagem.

O install-postgresql.logarquivo 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 .

postgresql windows
  • 5 5 respostas
  • 36314 Views

5 respostas

  • Voted
  1. Best Answer
    Craig Ringer
    2012-11-19T20:17:34+08:002012-11-19T20:17:34+08:00

    Parece que a causa raiz desse problema pode ter sido que o computador do @Celeritas tinha um valor incorreto para a COMSPECvariável de ambiente. Ele tinha um ponto e vírgula à direita, então, em vez do normal:

    C:\Windows\system32\cmd.exe
    

    isso foi:

    C:\Windows\system32\cmd.exe;
    

    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:

    '"C:\Windows\system32\cmd.exe;"' is not recognized as an internal or external command, operable program or batch file
    

    em vez disso, relata o erro deliciosamente útil No error:

    initdb: could not execute command ""C:/Program Files/PostgreSQL/9.2/bin/postgres.exe" --boot -x1 -F ": No error
    

    Veja relacionado:

    • http://forums.enterprisedb.com/posts/list/2125.page
    • http://postgresql.1045698.n5.nabble.com/initdb-failure-td2083455.html

    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:

    • Editando a COMSPECvariável de ambiente
    • Desinstalando o PostgreSQL
    • Reiniciando
    • Reinstalando o PostgreSQL

    embora 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.

    • 6
  2. sandthorn
    2019-10-27T23:22:36+08:002019-10-27T23:22:36+08:00

    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:

    1. Inicialização de cluster em chamadas de configuraçãoinitdb
    2. initdbverifica a versão como se estivesse chamandopostgres -V
    3. postgres -Vainda não reconhece CPutf8e 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.

    • 0
  3. Samiksha Warang
    2020-05-28T12:22:25+08:002020-05-28T12:22:25+08:00

    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.

    • 0
  4. Jonathan Jusczyk
    2021-01-26T07:38:52+08:002021-01-26T07:38:52+08:00

    Problema:

    A instalação do 13.1.1 no Windows Server 2019 falhou com a mensagem

    "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".

    • 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:

       PS C:\Program Files\PostgreSQL\13\bin> .\initdb.exe -D "D:\PostgreSQL"
       The files belonging to this database system will be owned by user "myUser".
       This user must also own the server process.
      
       The database cluster will be initialized with locale "English_United States.1252".
       The default database encoding has accordingly been set to "WIN1252".
       The default text search configuration will be set to "english".
      
       Data page checksums are disabled.
      
       fixing permissions on existing directory D:/PostgreSQL ... ok
       creating subdirectories ... ok
       selecting dynamic shared memory implementation ... windows
       selecting default max_connections ... 100
       selecting default shared_buffers ... 128MB
       selecting default time zone ... US/Eastern
       creating configuration files ... ok
       running bootstrap script ... 2021-01-25 09:55:49.793 EST [51184] LOG:  unrecognized win32 error code: 50
       2021-01-25 09:55:49.804 EST [51184] LOG:  could not link file "pg_wal/xlogtemp.51184" to "pg_wal/000000010000000000000001": Invalid argument
       2021-01-25 09:55:49.808 EST [51184] FATAL:  could not open file "pg_wal/000000010000000000000001": No such file or directory
       child process exited with exit code 1
       initdb: removing contents of data directory "D:/PostgreSQL"
      

    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:

    C:\Users\myUser>"C:\Program Files\PostgreSQL\13\bin\pg_ctl.exe" -D "D:\PostgreSQL" -l logfile start
    waiting for server to start.... done
    server started
    

    Inicie um shell psql e faça login com o usuário myUser. Você pode então criar um usuário postgres, se desejar:

    CREATE ROLE postgres LOGIN PASSWORD 'password' NOINHERIT CREATEDB;
    CREATE SCHEMA postgres AUTHORIZATION postgres;
    GRANT USAGE ON SCHEMA postgres TO PUBLIC;
    
    • 0
  5. Slobodan Margetić
    2022-01-20T02:02:03+08:002022-01-20T02:02:03+08:00

    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.

    • 0

relate perguntas

  • Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo

  • O Oracle pode ser instalado no Windows sem ser um administrador?

  • Os procedimentos armazenados impedem a injeção de SQL?

  • Sequências Biológicas do UniProt no PostgreSQL

  • Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve