WordPress: Como corrigir “Erro ao Estabelecer uma Conexão com o Banco de Dados”

Se você está navegando 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 terrivelmente 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 o erro ao estabelecer uma conexão com o banco de dados no 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 suas credenciais de login do 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á obtendo 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 de 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 “Tudo, pare de editar! Linha de blogging feliz wp-config.php.

1
define('WP_ALLOW_REPAIR', true);

Depois de fazer isso, você poderá ver as configurações visitando esta página:
http://www.yoursite.com/wp-admin/maint/repair.php

Repair database in WordPress

Lembre-se, o usuário não precisa estar logado para acessar esta funcionalidade quando esta definição está definida. Isso ocorre porque a 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, certifique-se de remover isso do seu arquivo wp-config.php.

Se esse reparo não corrigir o problema, ou se você estiver com problemas para executar o reparo, continue lendo este artigo, pois talvez encontre 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 será necessário 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, Site5, é localhost. Você pode encontrar outros valores de host aqui.

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, no MAMP, o valor DB_Host quando alterado para o IP pode parecer funcionar.

1
define('DB_HOST', '127.0.0.1:8889');

Os IPs variam de acordo com os serviços de hospedagem on-line da web.

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. Então a melhor coisa que você deve fazer é telefonar ou assistir ao 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 = mysql_connect('localhost', 'root', 'password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

Certifique-se de substituir o nome de usuário e senha. Se o conectado for bem-sucedido, significa que o usuário tem permissão suficiente e que há algo errado. Volte para o seu arquivo wp-config para se certificar 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 do 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 – Accesso negado para usuário ‘foo’@’%’ (usando 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 do testconnection.php, deverá entrar em contato com seu host imediatamente para que ele corrija-o.

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 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:
http://www.wpbeginner.com.
As wp_options serão diferentes 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.

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 tentando encontrar uma solução.
fonte de consulta: How to Fix the Error Establishing a Database Connection in WordPress

Até mais.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *