Poucas coisas assustam mais um dono de site do que acessar o WordPress e encontrar a mensagem "Erro ao estabelecer uma conexão com o banco de dados". O site desaparece por completo, tanto para você quanto para os visitantes.
A boa notícia: esse erro tem causas conhecidas e soluções bem documentadas. Neste tutorial, vamos explorar cada cenário e mostrar como resolver o problema do início ao fim.
O Que Significa Esse Erro?
O WordPress armazena praticamente todo o conteúdo do site no banco de dados MySQL (ou MariaDB). Posts, páginas, configurações, dados de usuários, opções de plugins e temas: tudo está no banco.
Quando o WordPress tenta se conectar ao banco de dados e não consegue, ele exibe a mensagem:
Error establishing a database connection
Ou, na versão em português:
Erro ao estabelecer uma conexão com o banco de dados
Isso significa que a aplicação PHP (WordPress) não conseguiu se comunicar com o servidor de banco de dados. Nenhum conteúdo pode ser carregado, e o site fica completamente fora do ar.
Causas Mais Comuns
Antes de partir para as soluções, entenda as causas mais frequentes:
- Credenciais incorretas no wp-config.php - nome do banco, usuário, senha ou host errados
- Servidor de banco de dados fora do ar - o MySQL/MariaDB parou de funcionar
- Banco de dados corrompido - tabelas com erros que impedem leitura
- Host do banco de dados incorreto - "localhost" nem sempre é o valor correto
- Limite de conexões excedido - hospedagens compartilhadas limitam conexões simultâneas
- Prefixo de tabela errado - o wp-config.php aponta para tabelas que não existem
- Disco cheio no servidor - sem espaço, o MySQL não consegue operar
Vamos resolver cada uma dessas situações.
Passo 1: Verifique as Credenciais no wp-config.php
Essa é a causa número um. Qualquer alteração no nome do banco, usuário ou senha que não seja refletida no wp-config.php vai causar o erro.
Como verificar
Acesse os arquivos do site via FTP (FileZilla, WinSCP) ou pelo gerenciador de arquivos do painel da hospedagem. Abra o arquivo wp-config.php , que fica na raiz da instalação do WordPress.
Procure por estas quatro linhas:
define('DB_NAME', 'nome_do_banco');
define('DB_USER', 'usuario_do_banco');
define('DB_PASSWORD', 'senha_do_banco');
define('DB_HOST', 'localhost');
O que conferir
- DB _ NAME : o nome exato do banco de dados. Acesse o phpMyAdmin ou o painel da hospedagem para confirmar.
- DB _ USER : o nome do usuário do banco de dados. Atenção: em hospedagens com cPanel, o nome costuma ter um prefixo (ex: hostwp_usuario ).
- DB _ PASSWORD : a senha do usuário. Se você alterou a senha recentemente no painel, precisa atualizar aqui também.
- DB _ HOST : geralmente é localhost , mas em algumas hospedagens pode ser um IP ou endereço como mysql.servidor.com.br .
Como testar a conexão manualmente
Crie um arquivo chamado teste-db.php na raiz do site com o seguinte conteúdo:
<?php
$conexao = new mysqli('localhost', 'usuario_do_banco', 'senha_do_banco', 'nome_do_banco');
if ($conexao->connect_error) {
die('Erro na conexão: ' . $conexao->connect_error);
} else {
echo 'Conexão bem-sucedida!';
}
?>
Acesse seusite.com.br/teste-db.php no navegador. Se a conexão falhar, você saberá exatamente qual credencial está errada. Apague esse arquivo após o teste , pois ele expõe informações sensíveis.
Passo 2: Verifique se o Servidor de Banco de Dados Está Ativo
Se as credenciais estão corretas mas o erro persiste, o próprio servidor MySQL pode estar fora do ar.
Em hospedagem compartilhada
Entre em contato com o suporte da hospedagem. Você não tem controle sobre o serviço MySQL em hospedagem compartilhada, e o problema pode estar afetando vários clientes simultaneamente.
Em VPS ou servidor dedicado
Conecte via SSH e verifique o status do MySQL:
# Para MySQL sudo systemctl status mysql # Para MariaDB sudo systemctl status mariadb
Se o serviço estiver parado, reinicie:
# Para MySQL sudo systemctl restart mysql # Para MariaDB sudo systemctl restart mariadb
Verifique os logs do MySQL
Os logs indicam por que o serviço parou:
# Log padrão do MySQL sudo tail -50 /var/log/mysql/error.log # Em sistemas com MariaDB sudo tail -50 /var/log/mariadb/mariadb.log
As causas mais comuns para o MySQL parar são:
- Falta de memória RAM : o OOM Killer do Linux encerra o processo do MySQL quando a RAM acaba
- Disco cheio : sem espaço para logs ou dados temporários
- Configuração incorreta : valores de innodb_buffer_pool_size ou max_connections acima do que o servidor suporta
Passo 3: Repare o Banco de Dados pelo WordPress
O WordPress tem uma ferramenta nativa para reparar o banco de dados. Para ativá-la, adicione esta linha ao wp-config.php :
define('WP_ALLOW_REPAIR', true);
Depois, acesse no navegador:
https://seusite.com.br/wp-admin/maint/repair.php
Você verá duas opções:
- Reparar banco de dados : corrige tabelas com erros
- Reparar e otimizar banco de dados : corrige e otimiza as tabelas para melhor desempenho
Clique em "Reparar e otimizar banco de dados" e aguarde a conclusão.
Importante : após concluir, remova a linha WP_ALLOW_REPAIR do wp-config.php . Essa página não exige autenticação, então qualquer pessoa poderia acessá-la.
Passo 4: Repare o Banco de Dados via phpMyAdmin
Se a ferramenta nativa do WordPress não funcionar, use o phpMyAdmin diretamente.
Como fazer
- Acesse o phpMyAdmin pelo painel da hospedagem (cPanel, Plesk, etc.)
- Selecione o banco de dados do WordPress no menu lateral
- Clique em Verificar todas (marcar todas as tabelas)
- No menu dropdown "Com os selecionados", escolha Reparar tabela
Via linha de comando (SSH)
Se você tem acesso SSH, o processo é mais rápido:
# Reparar todas as tabelas do banco mysqlcheck -u usuario -p --repair nome_do_banco # Reparar e otimizar mysqlcheck -u usuario -p --repair --optimize nome_do_banco
Verificar tabelas específicas
Para identificar quais tabelas estão com problema:
mysqlcheck -u usuario -p --check nome_do_banco
O resultado mostra o status de cada tabela. Tabelas com status "OK" estão saudáveis. Qualquer outro status indica problema.
Passo 5: Verifique o Host do Banco de Dados
Nem toda hospedagem usa localhost como host do banco de dados. Algumas configurações exigem um endereço específico.
Exemplos de hosts por provedor
| Provedor | DB _ HOST |
|---|---|
| Hostinger | localhost |
| Locaweb | mysql.seudominio.com.br |
| GoDaddy | IP específico (veja no painel) |
| Amazon RDS | endpoint.rds.amazonaws.com |
Como descobrir o host correto
- Acesse o painel da hospedagem
- Procure na seção de banco de dados as informações de conexão
- Atualize o valor de DB_HOST no wp-config.php
Em alguns casos, especialmente quando o banco de dados roda em um servidor separado, você precisará usar um IP ou hostname fornecido pela hospedagem.
Passo 6: Crie um Novo Usuário do Banco de Dados
Se o usuário atual do banco de dados foi corrompido ou teve suas permissões alteradas, a solução mais rápida é criar um novo.
Via cPanel
- Acesse o cPanel e vá em Bancos de dados MySQL
- Na seção "Usuários MySQL", crie um novo usuário com uma senha forte
- Em "Adicionar usuário ao banco de dados", selecione o novo usuário e o banco do WordPress
- Marque TODOS OS PRIVILÉGIOS e confirme
- Atualize o wp-config.php com o novo usuário e senha
define('DB_USER', 'novo_usuario');
define('DB_PASSWORD', 'nova_senha_forte');
Via linha de comando (MySQL)
CREATE USER 'novo_usuario'@'localhost' IDENTIFIED BY 'nova_senha_forte'; GRANT ALL PRIVILEGES ON nome_do_banco.* TO 'novo_usuario'@'localhost'; FLUSH PRIVILEGES;
Passo 7: Verifique o Prefixo das Tabelas
O WordPress usa um prefixo para as tabelas do banco de dados. O padrão é wp_ , mas ele pode ser diferente, especialmente em instalações que seguem boas práticas de segurança.
Verifique no wp-config.php :
$table_prefix = 'wp_';
Agora confira no phpMyAdmin se as tabelas realmente usam esse prefixo. Se as tabelas são meusite_posts , meusite_options , etc., o prefixo no wp-config.php precisa ser meusite_ .
Um prefixo errado faz o WordPress procurar tabelas que não existem, gerando o erro de conexão.
Passo 8: Verifique o Espaço em Disco
Se o disco do servidor está cheio, o MySQL não consegue operar e pode até parar completamente.
Via SSH
# Verificar espaço em disco df -h # Verificar os maiores diretórios du -sh /var/lib/mysql/* du -sh /home/*/public_html/*
Soluções para liberar espaço
- Limpe logs antigos: sudo find /var/log -name "*.gz" -delete
- Remova backups antigos que não são mais necessários
- Otimize tabelas do banco: mysqlcheck -u root -p --optimize --all-databases
- Verifique se logs binários do MySQL estão consumindo espaço: SHOW BINARY LOGS;
Passo 9: Aumente o Limite de Conexões do MySQL
Em hospedagens compartilhadas, o número de conexões simultâneas ao banco de dados é limitado. Sites com muito tráfego ou plugins que fazem muitas consultas podem esgotar esse limite.
Verifique o limite atual (via SSH)
SHOW VARIABLES LIKE 'max_connections';
Aumente o limite (se tiver acesso)
Edite o arquivo de configuração do MySQL:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Adicione ou altere:
max_connections = 200
Reinicie o MySQL:
sudo systemctl restart mysql
Em hospedagem compartilhada, você precisará pedir ao suporte da hospedagem para ajustar esse valor.
Como Prevenir o Erro de Conexão com o Banco de Dados
Adote estas práticas para evitar que o problema se repita:
- Mantenha backups regulares do banco de dados. Use plugins como UpdraftPlus ou backup via SSH com mysqldump
- Monitore o uso de disco. Configure alertas quando o espaço atingir 80%
- Otimize o banco periodicamente. Plugins como WP-Optimize limpam revisões, transients e dados desnecessários
- Use credenciais fortes. Senhas fracas no banco de dados são um risco de segurança e de corrupção
- Não edite o wp-config.php sem backup. Sempre salve uma cópia antes de fazer alterações
- Monitore o uptime do MySQL. Em VPS, ferramentas como Monit ou UptimeRobot alertam quando o serviço cai
- Limite plugins que fazem muitas consultas. Plugins de estatísticas, logs e social feeds podem sobrecarregar o banco
Quando o Problema é no Servidor
Em muitos casos, o erro de conexão com o banco de dados não é culpa do WordPress, mas do servidor. MySQL que para sozinho, disco lotado, RAM insuficiente: esses problemas exigem conhecimento de infraestrutura que vai além do WordPress.
Se você está em uma hospedagem compartilhada e o erro acontece com frequência, considere migrar para um VPS gerenciado. A diferença de estabilidade é enorme.
A equipe da HOSTWP cuida do servidor e do WordPress ao mesmo tempo. Se o banco de dados caiu porque o MySQL ficou sem memória, a gente resolve a causa raiz no servidor, não apenas reinicia o serviço. Entre em contato com a HOSTWP e tenha um site estável de verdade.
Leia também: Erros WordPress: Guia Completo Para Resolver os Problemas Mais Comuns | Como Resolver o Erro 500 no WordPress