Erro ao estabelecer uma ligação com a base de dados no WordPress

O seu site já só mostra uma linha: «Erro ao estabelecer uma ligação com a base de dados». O WordPress não conseguiu abrir a base de dados onde vivem as suas páginas, as suas definições e as suas contas. Os seus conteúdos estão em geral intactos: este guia explica como descobrir qual das quatro causas possíveis está em jogo, e como a corrigir.

Publicado a 5 de outubro de 2026 Por Leitura: 8 minutos

Todos os guias

O essencial

  1. A mensagem diz que o WordPress não se conseguiu ligar ao servidor de base de dados com as informações do wp-config.php. Os seus conteúdos estão em geral intactos.
  2. Verifique primeiro que o servidor de base de dados funciona: página de estado do fornecedor de alojamento, outros sites da mesma conta, phpMyAdmin.
  3. Compare os quatro valores DB_NAME, DB_USER, DB_PASSWORD e DB_HOST do wp-config.php com os do painel do fornecedor de alojamento.
  4. Teste estes dados de acesso fora do WordPress: a mensagem de erro do MySQL nomeia a causa exata.
  5. Se a administração falar de tabelas indisponíveis, execute a ferramenta de reparação do WordPress e retire-a depois.
  6. Se o erro aparecer e desaparecer, olhe para a carga: demasiadas ligações simultâneas, ou robôs que saturam o site.

O que diz a mensagem

A cada página mostrada, o WordPress abre uma ligação à sua base de dados MySQL ou MariaDB com quatro informações escritas no wp-config.php, na raiz do site:

wp-config.php
define( 'DB_NAME', 'nome_da_base_de_dados' );
define( 'DB_USER', 'utilizador' );
define( 'DB_PASSWORD', 'palavra_passe' );
define( 'DB_HOST', 'localhost' );

«Erro ao estabelecer uma ligação com a base de dados» quer dizer que esta ligação falhou. Quatro causas o produzem: dados de acesso que já não correspondem, um servidor de base de dados parado ou inacessível, um servidor saturado ou uma base de dados danificada. As secções seguintes percorrem-nas da mais simples de verificar à mais rara.

1. O servidor de base de dados responde?

Se o servidor estiver em causa, abra um pedido de suporte junto do fornecedor de alojamento indicando a hora de início da avaria e a mensagem exata. Não há nada a alterar no site entretanto.

2. Os dados de acesso do wp-config.php estão certos?

É a causa mais frequente depois de uma mudança de alojamento, de uma alteração da palavra-passe da base de dados no painel do fornecedor de alojamento ou de uma restauração. Compare os quatro valores do wp-config.php com a secção de bases de dados do seu fornecedor de alojamento:

Uma palavra-passe que contenha um apóstrofo (') corta a cadeia PHP que a envolve no wp-config.php. Coloque antes dele uma barra invertida (\'), ou escolha uma palavra-passe sem apóstrofo.

Testar os dados de acesso fora do WordPress

O WordPress mostra uma mensagem genérica. O MySQL, esse, diz precisamente o que está mal. Duas maneiras de o interrogar com os valores do wp-config.php:

Na linha de comandos, se tiver acesso SSH

Terminal (a palavra-passe é pedida a seguir)
mysql -h localhost -u utilizador -p nome_da_base_de_dados

Com o WP-CLI, wp db check lê diretamente o wp-config.php e verifica as tabelas com estes dados de acesso.

Com um ficheiro PHP temporário

Coloque este ficheiro na raiz do site com um nome difícil de adivinhar, abra-o no navegador e elimine-o logo a seguir: contém a palavra-passe da base de dados.

teste-ligacao-a7k2.php
<?php
mysqli_report(MYSQLI_REPORT_OFF);
$ligacao = @mysqli_connect('localhost', 'utilizador', 'palavra_passe', 'nome_da_base_de_dados');
echo $ligacao ? 'Ligação bem-sucedida' : 'Falha: ' . mysqli_connect_error();

A primeira linha conta: desde o PHP 8.1, uma ligação que falha lança uma exceção por predefinição, e a página ficaria em branco em vez de mostrar a mensagem do MySQL.

O MySQL respondeA causaA correção
Access denied for user 'utilizador'@'localhost' (using password: YES)O par utilizador e palavra-passe é recusado, ou o utilizador não tem direito a ligar-se a partir deste anfitrião.Redefinir a palavra-passe no painel e copiá-la para DB_PASSWORD; verificar DB_USER.
Access denied for user 'utilizador'@'localhost' to database 'nome_da_base_de_dados'O utilizador liga-se, mas não tem direitos sobre esta base de dados.Associar o utilizador à base de dados no painel do fornecedor de alojamento, com todos os privilégios.
Unknown database 'nome_da_base_de_dados'A ligação funciona, mas nenhuma base de dados tem este nome.Corrigir DB_NAME, prefixo incluído; verificar que a base de dados continua a existir.
Too many connectionsO servidor atingiu o número máximo de ligações simultâneas.Ver a secção sobre os erros intermitentes.
Connection refused ou No such file or directory (código 2002 a partir do PHP), Can't connect to MySQL server (na linha de comandos)Nenhum servidor responde neste endereço: servidor parado, ou DB_HOST errado.Verificar DB_HOST no painel; caso contrário, avisar o fornecedor de alojamento.
Ligação bem-sucedidaOs dados de acesso estão certos.Procurar do lado da própria base de dados: secção seguinte.

3. Uma base de dados danificada: a ferramenta de reparação

Quando os dados de acesso estão certos mas há tabelas danificadas, o site público mostra a mesma mensagem de erro de ligação, e a administração uma mensagem mais precisa: «Uma ou mais tabelas da base de dados não estão disponíveis. A base de dados pode estar a precisar de ser reparada.». O WordPress fornece uma ferramenta para isso. Acrescente esta linha ao wp-config.php:

wp-config.php
define( 'WP_ALLOW_REPAIR', true );

Abra depois https://www.o-seu-site.com/wp-admin/maint/repair.php e execute «Reparar base de dados». Retire a linha assim que a reparação terminar: enquanto lá estiver, esta página fica acessível a qualquer pessoa, sem início de sessão.

Antes de qualquer reparação, exporte a base de dados (wp db export, ou o separador Exportar do phpMyAdmin). Se a reparação falhar, o fornecedor de alojamento pode restaurar a base de dados a partir das suas cópias de segurança.

4. Um erro que aparece e desaparece: a carga

Um erro que surge a certas horas e depois desaparece sozinho indica um servidor saturado, mais do que uma configuração errada. As causas mais comuns:

As correções: bloquear as tentativas abusivas de início de sessão, instalar uma cache de páginas, desativar o xmlrpc.php se nenhuma aplicação o usar, e pedir ao fornecedor de alojamento os registos do período com erro.

Um site cuja parte técnica fica a nosso cargo

Com a Serenity by Simafri, criamos o seu site profissional, alojamo-lo, protegemo-lo e mantemo-lo atualizado. Basta escrever-nos, nós tratamos de tudo. Nome de domínio e email profissional incluídos.

Descobrir a Serenity by Simafri

Perguntas frequentes

O erro de ligação à base de dados apagou o meu site?

Em geral, não. A mensagem diz que o WordPress não se conseguiu ligar à base de dados, e não que a base de dados desapareceu. Se o phpMyAdmin continuar a mostrar as tabelas do site, as suas páginas, artigos e definições estão no lugar.

Porque é que o erro apareceu depois de mudar o meu site de alojamento?

Porque o novo alojamento usa outros dados de acesso à base de dados: nome da base de dados, utilizador, palavra-passe e por vezes endereço do servidor. Copie os valores do novo painel para DB_NAME, DB_USER, DB_PASSWORD e DB_HOST, no wp-config.php.

É preciso reinstalar o WordPress para corrigir este erro?

Reinstalar o WordPress não altera os dados de acesso do wp-config.php nem o estado do servidor de base de dados, que são as causas desta mensagem. Teste primeiro os dados de acesso, depois o estado do servidor e por fim a integridade das tabelas.

O erro só aparece em certos dias, de onde vem?

De uma saturação, mais do que de uma configuração: demasiadas ligações simultâneas, um pico de tráfego ou robôs. Os registos de acesso e o consumo de recursos no painel do fornecedor de alojamento mostram o que se passava no momento do erro.

Contacte-nos