Erro ao instalar o **PostgreSQL no Windows 9.2 ou 11.5** e, no meio do processo, apareceu a janela de aviso:
Problem running post-install step. Installation may not complete correctly The database cluster initialisation failed.

Esse é um dos erros mais comuns (e mais mal documentados) do instalador oficial da EnterpriseDB para Windows. Neste post explico o motivo real por trás desse erro e a solução que resolveu o problema em um caso prático de instalação do *PostgreSQL*.
O que significa esse erro
Durante a instalação, o instalador do PostgreSQL executa automaticamente o utilitário `initdb`, responsável por criar o **cluster de banco de dados** (a estrutura inicial de arquivos e diretórios onde o PostgreSQL vai armazenar os dados). Quando esse passo falha, a instalação é concluída de forma incompleta: os binários são copiados, mas o banco de dados não fica funcional.
O aviso genérico “Problem running post-install step” não informa a causa exata, o que leva muita gente a reinstalar o sistema operacional ou baixar outra versão do instalador sem necessidade.
Causa mais comum: espaço no nome ou acentuação do usuário ou do Windows
Na maioria dos casos relatados, o problema acontece quando o nome do usuário do Windows contém espaço — por exemplo, um perfil chamado `BALCAO 1`, `PDV 01`, `CAIXA 2` ou similar, muito comum em computadores de lojas, restaurantes e sistemas de PDV (frente de caixa).
O motivo técnico é o seguinte: o processo de instalação do PostgreSQL utiliza as variáveis de ambiente **`TEMP`** e **`TMP`** do usuário logado para gravar arquivos temporários durante a criação do cluster. Como o perfil do usuário fica em:
“`C:\Users\BALCAO 1\AppData\Local\Temp“`
O espaço no nome da pasta quebra a chamada do `initdb`, que não interpreta corretamente o caminho. Resultado: o cluster não é criado e a instalação trava com a mensagem de erro.
Vale reforçar que acentos também podem causar o mesmo problema.
Como resolver: apontando TEMP e TMP para uma pasta sem espaço
A solução mais confiável é redirecionar as variáveis de ambiente `TEMP` e `TMP` do Windows para um caminho simples, sem espaços, antes de rodar o instalador, exemplo C:\TEMP.
Passo a passo
1. Abra o Painel de Controle → Sistema → Configurações avançadas do sistema.
2. Na aba Avançado, clique em Variáveis de Ambiente.
3. Na seção Variáveis do sistema (a de baixo, não a do usuário), localize e edite: – `TEMP` → `C:\Temp` – `TMP` → `C:\Temp`
4. Caso a pasta `C:\Temp` não exista, crie-a antes.
5. Clique em OK em todas as janelas para salvar.
6. Reinicie o computador (seria o ideal, mas funciona sem reiniciar).
7. Execute o instalador do PostgreSQL novamente, de preferência como Administrador.
Depois dessa alteração, o `initdb` passa a gravar seus arquivos temporários em `C:\Temp`, um caminho sem espaços, e o cluster é criado normalmente.
Cuidados extras que ajudam a evitar o erro
Mesmo com o ajuste de `TEMP`/`TMP`, algumas boas práticas reduzem ainda mais o risco de falha na instalação:
– Evite instalar como usuário com nome contendo espaço ou acento sempre que possível.
– Desative temporariamente o antivírus durante a instalação, já que alguns bloqueiam a execução do `initdb.exe`.
– Ao definir o Data Directory na instalação, prefira um caminho simples, como `C:\PostgreSQL\11\data`, em vez do padrão em “Program Files”.
– Sempre execute o instalador com “Executar como administrador”.
Esse tipo de problema é bastante comum em máquinas de PDV, caixas de loja e terminais de restaurante, onde os nomes de usuário costumam seguir padrões como “Caixa 1”, “Balcão 2” etc. Se você administra sistemas de automação comercial, vale por padrão evitar espaços nos nomes de usuário do Windows para prevenir esse e outros problemas semelhantes em instaladores de terceiros.
