O “erro ao estabelecer uma conexão com o banco de dados” é provavelmente um dos erros mais comuns que os usuários do WordPress podem encontrar. Ele está intimamente ligado à tela branca da morte (WSOD). Este erro significa que seu site não está mais se comunicando ou tem acesso ao seu banco de dados WordPress; assim, seu site inteiro vai abaixo.

Você deve resolver este erro imediatamente, pois isto pode afetar diretamente suas vendas, tráfego e análises.

Mas não se preocupe, hoje vamos discutir alguns cenários comuns que causam este erro e algumas maneiras fáceis de colocar seu site de volta em funcionamento num piscar de olhos.

Confira nosso guia em vídeo para corrigir o “Erro ao estabelecer uma conexão com o banco de dados”

É assim que funciona: todas as informações do seu site WordPress, como dados de artigos, dados de página, informações de meta, configurações de plugins, informações de login, etc., são armazenadas em seu banco de dados MySQL. Os únicos dados não armazenados lá são o conteúdo de mídia, como imagens, e seus arquivos de tema/plugin/núcleo, como index.php, wp-login.php, etc.

Quando alguém visita seu site, o PHP executa o código na página, consultando as informações do banco de dados e, em seguida, as exibe para o visitante em seu navegador.

Se isto não estiver funcionando corretamente, você fica com a mensagem “erro ao estabelecer uma conexão com o banco de dados”, como visto abaixo. A página inteira está em branco porque nenhum dado pode ser recuperado para renderizar a página, já que a conexão não está funcionando corretamente. Isto não só quebra o frontend do seu site, mas também impedirá que você acesse o seu painel de controle do WordPress.

Mensagem "Erro ao estabelecer uma conexão com o banco de dados" em Chrome
Mensagem “Erro ao estabelecer uma conexão com o banco de dados” em Chrome.

No entanto, os visitantes podem não ver este erro no frontend de imediato. Isso porque o seu site provavelmente ainda está servindo a partir do cache até que ele expire. Por exemplo, em Kinsta, todos os sites WordPress estão em cache por padrão por uma hora. Portanto, se um site ainda estiver servindo a partir do cache, pode parecer aceitável para um visitante.

Na Kinsta, nossa equipe de suporte pode aumentar a duração do seu cache para, digamos, uma hora ou até mesmo uma semana, se você quiser. Se você tem um site que não muda com muita frequência, isso pode aumentar o desempenho do seu site, já que ele não precisa pegar novos arquivos com a mesma frequência depois que o cache expirar. E em casos como os acima, o frontend do site na maioria dos casos (a menos que você tenha um script ou parte do seu site quebrando o cache) permaneceria acordado por muito mais tempo.

Quando os visitantes tentam acessar seu site enquanto este erro está acontecendo, ele irá gerar um código de status 500 HTTP em seus logs. Este mesmo código de status aparece com um “erro interno do servidor” Isso significa que algo deu errado no servidor, e o recurso solicitado não foi entregue. Quando tudo estiver funcionando corretamente, seu site irá gerar um código de status de 200 HTTP, o que significa que tudo está bem.

Os clientes da Kinsta podem revisar os registros do site no painel MyKinsta:

"Error Establishing a Database Connection" e erros 500 revelados no access.log.
“Error Establishing a Database Connection” e erros 500 revelados no access.log.

Se você é um cliente Kinsta, você também pode olhar para o relatório de erros 500 de quebra no MyKinsta analytics para ver se é algo que tem sido um problema recorrente.

Erros 500 de repartição
Erros 500 de repartição.

O que causa o “Error Establishing a Database Connection”?

Então por que exatamente isso acontece? Bem, aqui estão algumas razões comuns abaixo. E não se preocupe, vamos detalhar cada uma delas para que você possa saber como corrigir. Tipicamente você pode resolver este erro em menos de 15 minutos.

Credenciais de login do banco de dados incorretas

Seu site WordPress usa informações de login separadas para se conectar ao seu banco de dados MySQL.

Banco de dados corrompido

Com tantas partes móveis com temas, plugins e usuários constantemente apagando-os e instalando-os, às vezes os bancos de dados são corrompidos. Isto pode ser devido a uma tabela ausente ou individualmente corrompida, ou talvez alguma informação tenha sido apagada por acidente.

Arquivos corrompidos em sua instalação do WordPress

Isso pode até acontecer às vezes devido a hackers.

Problemas com seu servidor de banco de dados

Várias coisas podem estar erradas no servidor web, tais como sobrecarregar o banco de dados de um pico de tráfego ou não responder de muitas conexões simultâneas. Isto é comum com hosts compartilhados, pois eles utilizam os mesmos recursos para muitos usuários nos mesmos servidores.

Aumento de tráfego

Dependendo do host web que você usa, seu servidor pode ser incapaz de lidar com muitas conexões simultâneas com o banco de dados. Um aumento no tráfego pode levar a problemas temporários com o banco de dados.

Como corrigir o “Error Establishing a Database Connection”?

Antes de solucionar o erro, recomendamos fazer um backup do site WordPress. Muitas das recomendações abaixo envolvem manipulação de informações em seu banco de dados, então você não quer piorar as coisas. Você deve sempre fazer um backup antes de tentar corrigir as coisas no seu site WordPress, não importa o quão experiente em tecnologia você pensa que é.

Você pode usar um popular plugin de backup do WordPress, como VaultPress ou WP Time Capsule para fazer o backup de seus arquivos e banco de dados.

Se você é um usuário da Kinsta, pode aproveitar nosso recurso de backup integrado. Clique em seu site WordPress no MyKinsta e selecione Backups. Em seguida, clique na aba Manual e clique no botão Fazer Backup para criar um backup manualmente.

Captura de tela: Criando manualmente um backup do WordPress no MyKinsta.
Criando um backup do WordPress no MyKinsta.

Você então também tem a opção de restaurar um backup para a produção ou teste. Ou você pode fazer backup manualmente do seu banco de dados MySQL usando o phpMyAdmin. Uma vez que você tenha um backup bem sucedido, é hora de resolver os problemas de conexão do seu banco de dados.

1. Verifique as credenciais de login do seu banco de dados

A primeira coisa a fazer é verificar se as credenciais de login do seu banco de dados estão corretas. Esta é de longe a razão mais comum pela qual a mensagem “erro ao estabelecer uma conexão com o banco de dados” ocorre. Especialmente logo após as pessoas migrarem para um novo provedor de hospedagem. Os detalhes da conexão do seu site WordPress são armazenados no arquivo wp-config.php, que geralmente está localizado na raiz do seu site WordPress.

Ele contém quatro informações importantes que devem estar corretas para que a conexão ocorra com sucesso.

Nome do Banco de Dados

// MySQL settings
// The name of the database for WordPress 
define('DB_NAME', 'xxxxxx');

Nome de usuário do banco de dados MySQL

// MySQL database username 
define('DB_USER', 'xxxxxx');

Senha do banco de dados MySQL

// MySQL database password 
define('DB_PASSWORD', 'xxxxxxxxx');

MySQL hostname (servidor)

// MySQL hostname 
define('DB_HOST', 'localhost');

Para acessar seu arquivo wp-config.php, você pode se conectar ao seu site via SFTP e navegar até a raiz do seu site. Ou, se você estiver usando o cPanel, você pode clicar em “File Manager”, navegar até a raiz do seu site, e clicar com o botão direito para editar o arquivo.

Captura de tela: Localização do ícone do Gerenciador de arquivos no cPanel.
Encontrando o ícone do Gerenciador de arquivos no cPanel.

Aqui está um exemplo abaixo de como o arquivo se parece quando aberto.

Credenciais wp-config.php
Credenciais wp-config.php.

Agora você precisa verificar seus valores atuais em relação aos do seu servidor para garantir que eles estejam corretos. Siga as instruções abaixo para usuários do cPanel e Kinsta.

Verificando as credenciais do banco de dados no cPanel

A primeira coisa a ser verificada é o nome do banco de dados. Para fazer isso, você deve entrar no phpMyAdmin no cPanel sob a seção Bancos de Dados.

Captura de tela mostrando o ícone do phpMyAdmin no cPanel.
O ícone do phpMyAdmin no cPanel.

Você deve ver o nome do seu banco de dados na parte inferior à esquerda. Você pode ignorar o banco de dados “information_schema”, pois este é algo usado pelo host. Você então vai querer comparar esse nome com o valor DB_NAME em seu arquivo wp-config.php. Se eles corresponderem, então este não é o problema. Se eles não corresponderem, você precisa atualizar seu arquivo wp-config.php.

Captura de tela: Localizando o nome do banco de dados no phpMyAdmin.
Localizando o nome do banco de dados no phpMyAdmin.

Você também pode verificar se este é o banco de dados correto, assegurando que ele contenha a URL do seu site WordPress. Para fazer isso, clique no banco de dados e depois clique na tabela wp_options (isso pode ser ligeiramente diferente para fins de segurança, como wpxx_options). No topo da tabela, você verá os valores para a URL e o nome do seu site. Se estes corresponderem ao seu site atual, você pode ter certeza de que você está no lugar certo.

Verificar URL do site em phpMyAdmin
Verificar URL do site em phpMyAdmin.

Se o nome do seu banco de dados já estava correto e você ainda receber a mensagem “erro ao estabelecer uma conexão com o banco de dados”, você também vai querer verificar seu nome de usuário e senha. Para fazer isso, você precisará criar um novo arquivo PHP no diretório raiz do seu site WordPress e inserir o seguinte código. Você pode nomeá-lo como você quiser, como checkdb.php. Mude os valores de db_user e db_password com aqueles do seu arquivo wp-config.php.

<?php

$test = mysqli_connect('localhost', 'db_user', 'db_password');

if (!$test) {

 die('MySQL Error: ' . mysqli_error());

}

echo 'Database connection is working properly!';

mysqli_close($testConnection);

Então navegue pelo arquivo em seu site WordPress: https://yourdomain.com/checkdb.php. Se você receber um “MySQL Error: Acesso negado”, então você sabe que seu nome de usuário ou senha está errado, e você precisará continuar para o próximo passo para redefinir suas credenciais.

Acesso negado ao MySQL
Acesso negado ao MySQL.

Abaixo está a mensagem que você quer ver, “A conexão com o banco de dados está funcionando corretamente”, mas é claro, se estivesse, então você não estaria aqui. Certifique-se de apagar/remover este arquivo depois que você terminar de testar.

Conexão de banco de dados funcionando corretamente
Conexão de banco de dados funcionando corretamente.

Então, em seguida, você precisa redefinir seu nome de usuário e senha. No cPanel, clique em MySQL Databases sob a seção Databases.

cPanel MySQL banco de dados
cPanel MySQL banco de dados.

Role para baixo e crie um novo usuário do MySQL. Tente e escolha um nome de usuário e senha únicos para que eles não possam ser facilmente adivinhados. A ferramenta geradora de senhas que eles fornecem funciona excelente. Então clique em “Create User” (Criar Usuário). Alternativamente, você pode mudar a senha nesta tela para o usuário atual do banco de dados.

Criar um novo usuário MySQL
Criar um novo usuário MySQL.

Em seguida, role para baixo e adicione seu novo usuário ao seu banco de dados. A próxima tela irá perguntar quais privilégios você quer atribuir. Selecione “Todos os Privilégios”.

Adicionar usuário ao banco de dados no cPanel
Adicionar usuário ao banco de dados no cPanel.

Então pegue essas novas credenciais e atualize seu arquivo wp-config.php. Você vai querer atualizar os valores DB_USER e DB_PASSWORD. Você também pode reexecutar o arquivo de teste de antes. Isto deve então resolver o seu problema de credenciais. Se não, você ainda pode ter o hostname errado (DB_HOST). Alguns provedores de hospedagem usam valores diferentes.

Veja uma lista de alguns valores comuns de host DB. Tipicamente, este será o localhost. Mas você sempre pode entrar em contato com seu provedor de hospedagem ou verificar a documentação deles se você não tiver certeza. Alguns também podem usar 127.0.0.1 ao invés de localhost.

Se você seguiu tudo acima e ainda está recebendo a mensagem “erro ao estabelecer uma conexão com o banco de dados”, prossiga para os seguintes passos de solução de problemas abaixo.

Verifique as Credenciais do Banco de Dados com Kinsta

Se você é um usuário Kinsta, verificar suas credenciais em relação ao seu arquivo wp-config.php e o servidor é muito mais fácil! Tudo o que você precisa fazer é clicar na seção Informações do seu site dentro do painel MyKinsta e, na parte inferior, você verá o nome do banco de dados, nome de usuário e senha. Por padrão, Kinsta usa o localhost para o DB_HOST.

Verificando as credenciais do banco de dados no MyKinsta.
Verificando as credenciais do banco de dados no MyKinsta.

Então pegue essas novas credenciais e atualize seu arquivo wp-config.php. Você vai querer atualizar os valores DB_USER e DB_PASSWORD. Isto deve então resolver o seu problema de credenciais. Se você precisar redefinir essas credenciais, entre em contato com nossa equipe de suporte. Se você seguiu tudo acima e ainda está recebendo a mensagem “erro ao estabelecer uma conexão com o banco de dados”, prossiga para os seguintes passos de solução de problemas abaixo.

2. Reparar o banco de dados do WordPress corrompido

Em alguns casos, pode ser que o seu banco de dados tenha se tornado corrompido. Isso pode acontecer ocasionalmente (embora não com muita frequência) já que, com o tempo, centenas de tabelas são constantemente adicionadas/removidas por novos plugins e temas. Se você tentar acessar o painel do seu site WordPress e estiver recebendo o seguinte erro, isso significa que seu banco de dados está corrompido: “Uma ou mais tabelas do banco de dados não estão disponíveis. A base de dados pode precisar ser corrigida ” É importante notar que você pode ver este erro apenas no back-end, enquanto você vê a mensagem “erro ao estabelecer uma conexão com o banco de dados” no frontend.

O WordPress tem um modo de reparo de banco de dados que você pode iniciar. Adicione o seguinte no final do seu arquivo wp-config.php.

define('WP_ALLOW_REPAIR', true);
Modo de reparação WordPress
Modo de reparação WordPress.

Então navegue até o seguinte local no seu site WordPress: https://yourdomain.com/wp-admin/maint/repair.php. Você terá então a opção de reparar o banco de dados ou reparar e otimizar o banco de dados. Como você provavelmente está solucionando um problema no seu site agora, recomendamos o uso da opção de reparo do banco de dados, pois é mais rápido.

Banco de dados de reparo WordPress
Banco de dados de reparo WordPress.

Após executar o reparo do banco de dados acima, certifique-se de remover a linha de código que você adicionou ao seu arquivo wp-config.php. Caso contrário, qualquer pessoa será capaz de acessar a página repair.php. Se você estiver executando o cPanel, você também pode executar um reparo a partir da tela do banco de dados MySQL.

Reparação do banco de dados cPanel
Reparação do banco de dados cPanel.

Ou você pode fazer um reparo a partir do phpMyAdmin. Simplesmente entre no phpMyAdmin, clique no seu banco de dados e selecione todas as tabelas. Então, do menu suspenso, clique em “Reparar tabela” Isto é essencialmente apenas rodar o comando “REPAIR TABLE“.

Reparação de tabelas no phpMyAdmin
Reparação de tabelas no phpMyAdmin.

E finalmente, sua outra opção seria executar o reparo usando o WP-CLI com o seguinte comando:

wp db repair

Veja mais documentação sobre o uso nos recursos do desenvolvedor do WordPress.

Se você quer otimizar seu banco de dados, nós temos alguns tutoriais ótimos sobre como otimizar as revisões do WordPress para desempenho, juntamente com como converter suas tabelas MyISAM para InnoDB. Se você ainda tiver problemas em seu site, prossiga para a próxima etapa de solução de problemas.

Leitura sugerida: Como corrigir o erro “MySQL Server Has Gone Away” no WordPress.

3. Corrigir arquivos do WordPress corrompidos

A seguinte razão possível para você ver a mensagem “Erro ao estabelecer uma conexão com o banco de dados” é que seus arquivos centrais do WordPress se tornaram corruptos. Se isto se originou de um problema com a transferência de arquivos via FTP, um hacker ganhando acesso ao seu site, ou um problema com o seu host, você pode corrigir isso rapidamente. Entretanto, nós recomendamos que você faça um backup do seu site antes de tentar isso.

Você vai substituir a versão principal do WordPress em seu site. Você não está tocando em seus plugins, temas ou mídia, apenas na própria instalação do WordPress.

Entretanto, você pode perder qualquer mudança ou código personalizado que você tenha adicionado a arquivos como .htaccess ou wp-config.php. Se você fizer backup do seu site antes da solução de problemas, você terá cópias desses arquivos que você pode restaurar mais tarde.

Para começar, você deve baixar uma nova cópia WordPress do WordPress.org.

Download WordPress
Download WordPress.

Descompacte este arquivo em seu computador. Dentro, você vai querer excluir a pasta wp-content e o arquivo wp-config-sample.php.

Apagar pasta wp-content
Apagar pasta wp-content.

Então carregue os arquivos restantes via SFTP para o seu site, substituindo os arquivos existentes. Isto substituirá todos os arquivos problemáticos e assegurará que você tenha os novos que estão limpos e não corrompidos. É recomendado limpar o cache do seu navegador depois de fazer isso. Então verifique seu site WordPress para ver se o erro ainda existe.

4. Verifique se há problemas com o servidor do seu banco de dados

Se nada acima ajudou a resolver o seu problema, recomendamos verificar com o seu provedor de hospedagem, pois pode ser um problema com o seu servidor de banco de dados. Por exemplo, se houver muitas conexões simultâneas ao seu banco de dados ao mesmo tempo, isso pode gerar um erro. Isto é porque muitos hosts limitam seus servidores em quantas conexões são permitidas de uma vez. A utilização de um plugin de cache pode ajudar a minimizar as interações do banco de dados em seu site. Se você é um cliente Kinsta, você não precisa de plugins de cache, pois nós temos um cache rápido em nível de servidor.

Este problema pode acontecer muito em hospedeiros compartilhados, já que outra pessoa poderia teoricamente estar afetando o seu site. Isto porque os hosts compartilhados utilizam todos os mesmos recursos nos servidores. Esta é outra razão pela qual nós recomendamos usar um provedor de hospedagem WordPress gerenciada de alto desempenho, para que as coisas não fiquem superlotadas. Isso também significa que o ambiente é normalmente afinado para lidar com grandes quantidades de tráfego, especificamente para sites WordPress.

A experiente equipe de suporte Kinsta está sempre a um clique de distância no lado inferior direito do painel e disponível 24 horas por dia, 7 dias por semana, se você precisar de ajuda. E não se esqueça que temos representantes para ajudá-lo em vários idiomas, incluindo inglês, espanhol, francês, italiano e português.

Enviando uma mensagem para o suporte no MyKinsta.
Enviando uma mensagem para o suporte no MyKinsta.

5. Restaure o Backup mais recente

E por último, mas não menos importante, você pode sempre recorrer a um backup, se necessário. Em alguns casos, esta pode ser uma maneira mais rápida de resolver o problema se você não estiver preocupado em perder nenhum dado entre quando seu último backup foi feito. Muitos anfitriões têm seu próprio processo de restauração de backup. Lembre-se de que você pode precisar restaurar tanto seu banco de dados quanto seus arquivos.

Se você é um usuário Kinsta, você pode restaurar rapidamente um backup do seu site dentro da seção Backups do seu site. Escolha o tempo que você deseja reverter e clique em “Restaurar para” Você pode então selecionar se você quer restaurar para o ambiente de teste ou para o seu de produção.

Restaurando um backup do WordPress no MyKinsta.
Restaurando um backup do WordPress no MyKinsta.

Você será então solicitado a confirmar a restauração. Digite o nome do seu site e clique em “OK”. Ele também cria um backup no momento da restauração para que você possa desfazer a restauração, se necessário.

Confirmação da restauração WordPress
Confirmação da restauração WordPress.

Resumo

Como você pode ver, há várias maneiras de corrigir o “erro de estabelecer uma conexão de banco de dados” no WordPress. As mais comuns são as credenciais inválidas no arquivo wp-config.php. Verificar para garantir que elas estejam corretas é o melhor lugar para começar. A última coisa que você quer para um site é experimentar o tempo de inatividade.

Esperamos que um dos passos acima tenha ajudado você a colocar o seu site de volta em funcionamento. Lembre-se, você sempre pode restaurar seu site a partir de um backup, se necessário.

Você já experimentou a mensagem “Erro ao estabelecer uma conexão com o banco de dados” em seu site? Se sim, você foi capaz de resolvê-la? Informe-nos abaixo nos comentários.

Salman Ravoof

Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.