Última atualização em 12/05/2021
Se você já navega na web há algum tempo, pelo menos você já viu esse erro algumas vezes. Erro Estabelecer uma conexão de banco de dados é uma dessas maldições que podem ser causadas por vários motivos. Como um iniciante no WordPress, isso pode ser muito frustrante, especialmente quando aconteceu sozinho, sem que você alterasse nada. Nós nos deparamos com essa questão ontem em nosso próprio site. Demorou um pouco mais de 20 minutos para detectar e corrigir o problema. Ao fazer a pesquisa para encontrar possíveis causas, percebemos que não havia um bom artigo que cobrisse tudo. Neste artigo, mostraremos como corrigir erro ao estabelecer uma conexão de banco de dados WordPress, compilando uma lista de soluções em um só lugar.
Nota: Antes de fazer qualquer alteração no banco de dados, certifique-se de ter backups suficientes.
Por que você recebe esse erro?
Bem, em suma, você está recebendo este erro porque o WordPress não consegue estabelecer uma conexão com o banco de dados. Agora, o motivo pelo qual o WordPress não consegue estabelecer uma conexão com o banco de dados pode variar. Pode ser que as credenciais de login do seu banco de dados estejam erradas ou tenham sido alteradas. Pode ser que o seu servidor de banco de dados não esteja respondendo. Pode ser que o seu banco de dados esteja corrompido. Em nossa experiência, na maioria das vezes, esse erro ocorre devido a algum tipo de erro do servidor, mas também pode haver outros fatores. Vamos dar uma olhada em como resolver esse problema.
O problema ocorre para / wp-admin / também?
A primeira coisa que você deve fazer é certificar-se de que está recebendo o mesmo erro no front-end do site e no back-end do site (wp-admin). Se a mensagem de erro for a mesma nas duas páginas “Erro ao estabelecer uma conexão com o banco de dados”, prossiga para a próxima etapa. Se você está recebendo um erro diferente no wp-admin, por exemplo, algo como “Uma ou mais tabelas de banco de dados estão indisponíveis. O banco de dados pode precisar ser reparado ”, então você precisa reparar seu banco de dados.
Você pode fazer isso adicionando a seguinte linha no seu arquivo wp-config.php. Adicione antes de ‘That’s all’, pare de editar! Feliz blogging ‘ linha wp-config.php.
1
|
define( 'WP_ALLOW_REPAIR' , true); |
Depois de ter feito isso, você pode ver as configurações, visitando esta página: http://www.yoursite.com/wp-admin/maint/repair.php
Lembre-se, o usuário não precisa estar logado para acessar esta funcionalidade quando esta definição estiver definida. Isso ocorre porque sua principal intenção é reparar um banco de dados corrompido, os usuários muitas vezes não podem entrar quando o banco de dados está corrompido. Então, quando você terminar de reparar e otimizar seu banco de dados, remova-o do seu arquivo wp-config.php.
Se esse reparo não resolveu o problema, ou se você está tendo problemas para executar o reparo, continue lendo este artigo, pois poderá encontrar outra solução para funcionar.
Verificando o arquivo WP-Config
WP-Config.php é provavelmente o arquivo mais importante em toda a sua instalação do WordPress. É aqui que você especifica os detalhes do WordPress para conectar seu banco de dados. Se você alterou sua senha de root ou a senha de usuário do banco de dados, também precisará alterar esse arquivo. A primeira coisa que você deve sempre verificar é se tudo no seu arquivo wp-config.php é o mesmo.
1
2
3
4
|
define( 'DB_NAME' , 'database-name' ); define( 'DB_USER' , 'database-username' ); define( 'DB_PASSWORD' , 'database-password' ); define( 'DB_HOST' , 'localhost' ); |
Lembre-se de que seu valor DB_Host nem sempre é localhost. Dependendo do host, será diferente. Para hosts populares como HostGator , BlueHost , SiteGround , é localhost.
Algumas pessoas sugeriram que eles corrigiram seu problema substituindo localhost pelo IP. É comum ver esse tipo de problema ao executar o WordPress em um ambiente de servidor local . Por exemplo, em MAMP, o valor DB_Host quando alterado para o IP pode parecer funcionar.
1
|
define( 'DB_HOST' , '127.0.0.1:8889' ); |
IPs variam para serviços de hospedagem on-line.
Se tudo neste arquivo estiver correto (certifique-se de verificar se há erros de digitação), então é justo dizer que há algo errado no servidor final.
Verifique seu host da Web (servidor MySQL)
Muitas vezes, você perceberá esse erro ao estabelecer uma conexão com o banco de dados quando seu site for invadido por muito tráfego. Basicamente, seu servidor host simplesmente não pode manipular a carga (especialmente quando você está em hospedagem compartilhada). Seu site ficará muito lento e, para alguns usuários, gerará o erro. Portanto, a melhor coisa que você deve fazer é ligar ou desligar o telefone com seu provedor de hospedagem e perguntar se o seu servidor MySQL é responsivo.
Para aqueles usuários que querem testar se o servidor MySQL está rodando, você pode fazer algumas coisas. Teste outros sites no mesmo servidor para ver se eles estão tendo o problema. Se eles também estão recebendo o mesmo erro, então definitivamente há algo errado com o seu servidor MySQL. Se você não possui nenhum outro site nesta mesma conta de hospedagem basta ir ao seu cPanel e tentar acessar o phpMyAdmin e conectar o banco de dados. Se você puder se conectar, então precisamos verificar se o usuário do seu banco de dados tem permissão suficiente. Crie um novo arquivo chamado testconnection.php e cole o seguinte código nele:
1
2
3
4
5
6
7
8
|
<?php $link = mysqli_connect( 'localhost' , 'username' , 'password' ); if (! $link ) { die ( 'Could not connect: ' . mysqli_error()); } echo 'Connected successfully' ; mysqli_close( $link ); ?> |
Certifique-se de substituir o nome de usuário e senha. Se o script foi conectado com sucesso, significa que o usuário tem permissão suficiente e que há algo errado. Volte para o seu arquivo wp-config para ter certeza de que tudo está correto (re-scanear por erros de digitação).
Se você não conseguir se conectar ao banco de dados acessando o phpMyAdmin, saberá que é algo com o seu servidor. Isso não significa necessariamente que seu servidor MySQL está inativo. Isso pode significar que seu usuário não tem permissão suficiente.
No nosso caso, nosso servidor MySQL estava rodando. Todos os outros sites nos servidores estavam funcionando bem, exceto pelo WPBeginner. Quando tentamos ir ao nosso phpMyAdmin, acabamos recebendo o erro:
# 1045 – Acesso negado para o usuário ‘foo’ @ ‘%’ (usando a senha: YES)
Entramos no telefone com o HostGator e o suporte deles rapidamente encontrou o problema. De alguma forma, as permissões de nossos usuários foram redefinidas. Não tenho certeza de como isso aconteceu, mas aparentemente esse foi o motivo. Eles voltaram e restauraram as permissões e conseguimos recuperar o site.
Portanto, se você obtiver o erro de acesso negado ao conectar-se ao seu phpMyAdmin ou através dos resultados de testconnection.php, entre em contato com seu host imediatamente para que ele possa corrigi-lo.
Soluções que funcionaram para os outros
É importante notar que eles podem não funcionar para você. Use a seu próprio risco e certifique-se de que você tem backups suficientes se algo der errado.
Deepak Mittal disse que seu cliente estava recebendo o erro de que o banco de dados precisa ser reparado. Mesmo depois de reparar o banco de dados, o erro não desapareceu. Ele tentou várias coisas e, no final, a questão era a URL do site. Aparentemente, isso foi alterado, o que causou a persistência do erro. Ele executou a consulta SQL indo ao phpMyAdmin:
1
|
UPDATE wp_options SET option_value= 'YOUR_SITE_URL' WHERE option_name= 'siteurl' |
Substitua YOUR_SITE_URL pelo exemplo de URL real: https://www.wpbeginner.com. O wp_options será diferente se você tiver alterado o prefixo padrão do banco de dados do WordPress .
Isso pareceu resolver o problema para ele e para alguns outros que também comentaram em seu post.
Sachinum sugeriu que ele era capaz de conectar o banco de dados com testconnection.php, então ele mudou o usuário wp-config.php para o usuário root. O WordPress começou a funcionar perfeitamente bem. Então ele reverteu as configurações de volta para o usuário do banco de dados e continuou a funcionar. Ele não conseguia descobrir o que estava errado, mas concluiu que era um erro de digitação.
Os cutongonders sugeriram que eles removeram o conteúdo de active_plugins na tabela wp_options e editaram o conteúdo de recent_edited. Basicamente, isso parecia resolver o problema. Por favor, sua resposta completa aqui .
Nós lemos em várias fontes que os usuários simplesmente enviaram uma cópia nova do WordPress e corrigiram o erro.
Este é um erro realmente frustrante. O que você tentou que parecia funcionar para você? Ficaríamos felizes em expandir esse recurso, para que os outros não precisem perder tanto tempo para encontrar uma solução.
O Que É o Erro ao Estabelecer uma Conexão com o Banco de Dados?
Todas as informações de seu site WordPress, como dados de posts e de páginas, metadados, configurações de plugins, informações de login, entre outras, são armazenadas em seu banco de dados MySQL. Os únicos dados que não são armazenados neste local são os conteúdos de mídia, como imagens, e os arquivos de seu tema/plugin/núcleo, como index.php, wp-login.php e demais. Quando alguém visita seu website, o PHP executa o código na página e consulta a informação no banco de dados para, em seguida, exibi-la para o visitante em seu navegador.
Se por alguma razão este processo não estiver funcionando corretamente, você recebe a mensagem de erro ao estabelecer uma conexão com o banco de dados, conforme pode ser visto abaixo. A página inteira fica em branco, pois nenhum dado pode ser recuperado para carregá-la, já que aconexão não está funcionando corretamente. Isso não só prejudica o front-end do seu site, mas também impede que você acesse seu painel do WordPress.
Cansado de suporte de hospedagem WordPress que parece saber menos do que você faz?
Quando os visitantes tentam acessar seu site enquanto esse erro ocorre, um código de status HTTP 500 será gerado em seus registros. Este mesmo código de status aparece quando há um “erro interno do servidor”. Essencialmente, isso significa que algo deu errado no servidor e a fonte solicitada não foi entregue. Quando tudo estiver funcionando adequadamente, seu site gerará um código de status HTTP 200, o que significa que tudo está correto.
Cenários Comuns Que Causam Este Erro
E por que isso acontece exatamente? Bom, abaixo estão listados alguns motivos. E não se preocupe: veremos cada um deles detalhadamente para que você possa fazer a correção. Em geral, você pode resolver esse erro em menos de 15 minutos.
- O problema mais comum são credenciais de login no banco de dados incorretas. Seu site WordPress usa informações de login separadas para conectar ao banco de dados MySQL.
- Seu banco de dados está corrompido. Com tantas movimentações nos temas, plugins e usuários que constantemente removem e instalam os mesmos, algumas vezes os bancos de dados são corrompidos. Isso pode ocorrer em virtude de uma tabela que está faltando ou que foi corrompida individualmente, ou ainda alguma informação que foi deletada acidentalmente.
- Talvez você tenha arquivos corrompidos em sua instalação WordPress. Por vezes, isso pode acontecer até mesmo por causa de hackers.
- Problemas no seu servidor de banco de dados. Diversos fatores podem dar errado por parte das hospedagens web, como bancos de dados sobrecarregados com picos de tráfego ou sem resposta devido a muitas conexões simultâneas. Isso é bastante comum em hospedagens compartilhadas, uma vez que elas utilizam os mesmos recursos para diversos usuários nos mesmos servidores.
Como Corrigir o Erro ao Estabelecer uma Conexão com o Banco de Dados
Antes de você começar a trabalhar na resolução do erro, sempre recomendamos que faça um backup. Diversas recomendações abaixo envolvem a manipulação de informações em seu banco de dados e não queremos que as coisas fiquem ainda piores. Você sempre deve fazer um backup antes de tentar corrigir problemas no seu site WordPress, não importa o quão experiente em tecnologia você seja. Você pode usar um plugin WordPress de backup conhecido, como o UpdraftPlus ou o Duplicator para fazer o backup dos seus arquivos e do seu banco de dados.
Se você for um usuário Kinsta pode simplesmente tirar proveito do nosso recurso de backup com um clique. Basta selecionar seu site em MyKinsta, escolher a opção “Backups” e, em seguida, clicar em “Backup Agora”.
Você também tem a opção de restaurar um backup para a fase de produção ou preparação. Ainda é possível fazer o backup manual do seu banco de dados MySQL usando o phpMyAdmin. Depois de ter realizado o backup com sucesso, será hora de começar a resolução dos problemas de conexão com seu banco de dados.
1. Verifique as Credenciais de Login do seu Banco de Dados
A primeira ação a ser tomada é fazer uma verificação para garantir que suas credenciais de login no seu banco de dados estejam corretas. Este é de longe, o motivo mais comum que ocasiona a mensagem de erro ao estabelecer uma conexão com o banco de dados, especialmente após as pessoas migrarem para um novo provedor de hospedagem. Os detalhes da conexão para o seu site WordPress são armazenados no arquivo wp-config.php, que geralmente fica localizado na pasta raiz do seu site WordPress. Ele contém quatro partes importantes de informações que devem estar corretas para que a conexão seja realizada com sucesso.
-
- Nome do Banco de Dados
// ** MySQL settings ** //
/** The name of the database for WordPress */
define('DB_NAME', 'xxxxxx');
-
- 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');
-
- Nome de host MySQL (servidor)
/** MySQL hostname */
define('DB_HOST', 'localhost');
Para acessar seu arquivo wp-config.php, você pode fazer uma conexão ao seu site através de SFTP e navegar até a pasta raiz do seu site. Se você estiver usando o cPanel, pode clicar em “Gerenciador de Arquivos”, navegar pela pasta raiz do seu site e clicar com o botão direito para editar o arquivo.
Abaixo está um exemplo de como o arquivo se parece quando é aberto.
Agora você deve conferir os valores atuais com aqueles que estão em seu servidor para garantir que todos estejam corretos. Siga as instruções abaixo, criadas para atender aos usuários cPanel e Kinsta.
Verifique as Credenciais do Banco de Dados no cPanel
O primeiro detalhe a ser conferido é o nome do banco de dados. Para fazer isso, você precisa fazer login no phpMyAdmin enquanto estiver no cPanel, na seção de Bancos de Dados.
No canto esquerdo, você deverá ser capaz de visualizar o nome do banco de dados na parte inferior. Ignore o banco de dados “information_schema”, pois ele é utilizado pela sua hospedagem. Você deverá comparar o nome do banco de dados com o valor DB_NAME presente em seu arquivo wp-config.php. Se eles forem iguais, esse não é o problema que você está procurando. Se eles forem diferentes, você precisará atualizar seu arquivo wp-config.php.
Você também pode verificar se esse é o banco de dados correto, garantindo que que ele contenha a URL do seu site WordPress. Para fazer isso, clique no banco de dados e depois escolha a tabela wp_options (ela pode ter um nome diferente por propósitos de segurança, como wpxx_options). Na parte superior da tabela, você poderá ver valores definidos para a URL e o nome do seu site. Se eles corresponderem ao seu site atual, você terá certeza de que está no lugar certo.
Se o nome do seu banco de dados está correto e você continua recebendo a mensagem de erro ao estabelecer uma conexão com o banco de dados, também precisará verificar seu nome de usuário e senha. Para fazer isso, deverá criar um novo arquivo PHP na pasta raiz do seu site WordPress e inserir o código a seguir. Você pode nomeá-lo da forma que preferir, como verificardb.php. Apenas altere os valores de db_user e db_password com aqueles que constarem em seu arquivo wp-config.php.
<?php
$test = mysql_connect('localhost', 'db_user', 'db_password');
if (!$test) {
die('MySQL Error: ' . mysql_error());
}
echo 'Database connection is working properly!';
mysql_close($testConnection);
Em seguida, acesse o arquivo em seu site WordPress (https://seudominio.com/verificardb.php). Se você receber a mensagem “MySQL Error: Access denied”, saberá que seu nome de usuário ou senha está incorreto e deverá seguir para a próxima etapa para redefinir suas credenciais de acesso.
Abaixo está a mensagem que você deseja receber: “Database connection is working properly”. Mas é claro que, se esse fosse o caso, você não estaria aqui. Assegure-se de deletar/remover este arquivo após terminar seus testes.
Em seguida, você precisará redefinir seu nome de usuário e senha. No cPanel, clique em Bancos de dados MySQL, na seção Bancos de Dados.
Role a página para baixo e crie um novo usuário MySQL. Tente escolher um nome de usuário e uma senha únicos, para que não possam ser facilmente adivinhados. A ferramenta de geração de senha que eles fornecem funciona bem. Em seguida, clique em “Criar Usuário”. Você também pode alterar a senha atual de um usuário do banco de dados que já existe, conforme demonstrado na tela abaixo.
Na sequência, role a página novamente para baixo e adicione seu novo usuário ao banco de dados. A próxima tela perguntará quais privilégios você deseja atribuir. Selecione a opção “Todos os Privilégios”.
Em seguida, anote as novas credenciais e atualize seu arquivo wp-config.php. Você deverá atualizar os valores de DB_USER e DB_PASSWORD. Você também pode executar o arquivo de teste do passo anterior. Isso deverá resolver seu problema com as credenciais. Se isso não acontecer, pode ser que o nome de host (DB_HOST) esteja incorreto. Algumas hospedagens utilizam valores diferentes. Veja uma lista com alguns valores comuns de DB Host. Em geral, o valor costuma ser localhost. Mas você pode entrar em contato com seu provedor de hospedagem ou verificar a documentação que ele oferece se você não tiver certeza. Alguns provedores podem utilizar 127.0.0.1 ao invés de localhost.
Se você seguiu todos os passos acima e continua recebendo a mensagem de erro ao estabelecer uma conexão com o banco de dados, avance para as próximas etapas de resolução abaixo.
Verifique as Credenciais do Banco de Dados com Kinsta
Se você é um usuário Kinsta, o processo de verificação das 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 de informações do seu site e, na parte inferior, visualizará o nome do banco de dados, o usuário e a senha. Por padrão, a Kinsta usa localhost como valor para o DB_HOST.
Em seguida, anote as novas credenciais e atualize seu arquivo wp-config.php. Você deverá atualizar os valores de DB_USER e DB_PASSWORD. Isso deverá resolver seu problema com as credenciais. Se você precisar redefinir estas credenciais, basta entrar em contato com nossa equipe de suporte. Se você seguiu todos os passos acima e continua recebendo a mensagem de erro ao estabelecer uma conexão com o banco de dados, avance para as próximas etapas de resolução abaixo.
2. Reparo de Banco de Dados Corrompido
Em alguns casos, seu banco de dados poderá estar corrompido. Isso ocorre em algumas ocasiões (mesmo que não seja frequente), já que centenas de tabelas são adicionadas/removidas constantemente ao longo do tempo por novos plugins e temas. Se você está tentando fazer login no seu painel WordPress e recebe a seguinte mensagem de erro “Uma ou mais tabelas de banco de dados estão indisponíveis. O banco de dados pode precisar ser reparado”, significa que seu banco de dados está corrompido. É importante notar que você talvez só veja esse erro no back-end, enquanto a mensagem de erro ao estabelecer uma conexão com o banco de dados aparece no front-end.
Na verdade, o WordPress conta com um modo de reparo que pode ser ativado. Basta adicionar o seguinte código no final do seu arquivo wp-config.php.
define('WP_ALLOW_REPAIR', true);
Em seguida, navegue na seguinte localização em seu site WordPress: https://seudominio.com/wp-admin/maint/repair.php. Você terá a opção de reparar seu banco de dados ou reparar e otimizar o mesmo. Como você provavelmente está resolvendo uma interrupção no seu site neste momento, recomendamos que opte pela opção de reparo do banco de dados, pois ela é mais rápida.
Após executar o reparo de 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 poderá executar a ação de reparo. Se você está utilizando o cPanel, também pode executar o reparo a partir da tela de bancos de dados do MySQL.
Você pode ainda executar um reparo pelo phpMyAdmin. Basta fazer login no phpMyAdmin, clicar no seu banco de dados e selecionar todas as tabelas. No menu de seleção, clique em “Reparar tabela”. Isso fará com que o comando REPAIR TABLE seja executado.
Se você deseja otimizar seu banco de dados, temos alguns excelentes tutoriais sobre como otimizar revisões do WordPress para melhorar seu desempenho e também como converter suas tabelas MyISAM para InnoDB. Se você continua com problemas em seu site, siga para a próxima etapa de resolução.
3. Correção de Arquivos Corrompidos
O próximo motivo que pode estar causando a mensagem de erro ao estabelecer uma conexão com o banco de dados é que seus arquivos podem estar corrompidos. Seja por um problema ao transferir arquivos através de FTP, um hacker que conseguiu acesso ao seu site ou problemas com sua hospedagem, você pode resolver isso rapidamente. Novamente, recomendamos que você faça um backup do seu site antes de experimentar essa solução.
Você basicamente substituirá a versão principal do WordPress no seu site. Você não vai lidar com plugins, temas ou mídia, apenas a instalação em si do WordPress. Para fazer isso, precisará fazer o download de uma nova cópia do WordPress no site WordPress.org.
Descompacte esse arquivo em seu computador. Dentro dele, você deverá excluir a pasta wp-content e o arquivo wp-config-sample.php.
Em seguida, faça o upload dos demais arquivos para o seu site através de SFTP, substituindo todos os arquivos já existentes. Isso substituirá todos os arquivos com problemas e garantirá que você tenha outros que estarão limpos e não corrompidos. É recomendável limpar o cache do seu navegador após fazer isso. Volte a verificar seu site WordPress para ver se o problema continua existindo.
4. Problemas com seu Servidor do Banco de Dados
Se nenhuma das opções acima resolveu seu problema, recomendamos que você verifique com seu provedor de hospedagem, pois esse pode ser um problema com o servidor do banco de dados. Por exemplo, se houver muitas conexões simultâneas ao seu banco de dados, esse erro pode surgir. Isso acontece porque muitas hospedagens possuem limites em seus servidores sobre quantas conexões são permitidas por vez. Utilizar um plugin de cache pode ajudar a minimizar as interações com o banco de dados em seu site. Se você é um cliente Kinsta, não precisa usar nenhum plugin de cache, pois dispomos de cache no nível de servidor.
Este problema pode ocorrer bastante em hospedagens compartilhadas, uma vez que outras pessoas podem estar afetando seu site. Isso ocorre porque as hospedagens compartilhadas utilizam os mesmos recursos nos servidores. Este é outro motivo pelo qual recomendamos que você opte por uma hospedagem WordPress gerenciada de alto desempenho, assim não há risco de superlotação. Isso também significa que o ambiente costuma estar preparado para lidar com grandes quantidades de tráfego, especialmente em sites WordPress.
A equipe de suporte Kinsta possui amplo conhecimento e está disponível 24×7 a um clique no canto inferior direito do painel se você precisar de ajuda. Não se esqueça que temos representantes que podem te ajudar em inglês e espanhol.
5. Restauração do Último Backup
Por fim, mas não menos importante, você pode recorrer a um backup se for necessário. Em alguns casos, essa pode ser a forma mais rápida de resolver um problema se você não estiver preocupado em perder os dados adicionados desde que seu último backup foi feito. Muitas hospedagens possuem seu processo próprio de restauração do backup. Lembre-se que você poderá precisar restaurar seu banco de dados e seus arquivos.
Se você é um usuário Kinsta, pode restaurar um backup com facilidade em seu site, acessando a seção de Backups. Basta escolher o momento para o qual você deseja fazer a restauração e clicar em “Restaurar”.
Você será solicitado a confirmar a restauração. Basta inserir o nome do seu site e clicar em “OK”. Isso criará um backup no momento da restauração, assim você poderá desfazer essa ação se for necessário.