É muito comum que usuários tenham experienciado este problema, ‘Error Establishing a Database Connection’ é um problema que pode ter sido causado por várias razões. Como um iniciante no WordPress, isso pode ser muito frustante especialmente quando acontece sozinho sem você ter alterado nada. Nós já passamos por esse problema diversas vezes com sites de nossos clientes. Para quem tem experiência com esses problemas pode levar em torno de 20 minutos para detectar e resolver. Enquanto busca por soluções do problema, nós percebemos que existem poucos artigos que cobrem quase tudo. Neste artigo, nós iremos lhe mostrar como resolver o ‘Error Establishing a Database Connection’ no WordPress colocando uma lista de soluções em um único lugar.
Nota: Antes de fazer qualquer mudanças em sua base de dados, tenha certeza que você tem backups suficientes do seu site.
Porque Você está vendo este Erro
Resumindo, você está recebendo este erro porque WordPress não consegue estabelecer uma conexão com sua base de dados. Agora a razão do porque ele não consegue estabelecer essa conexão pode variar. Pode ser que seus credenciais de login para a base de dados estejam errados ou que tenham sido alterados. Pode ser que a sua base de dados esteja sem respostas. Sua base de dados pode ter sido corrompida por alguma razão. Em nossa experiência, na maioria das vezes este erro acontece por causa de algum erro no servidor, pórem, pode haver diversos outros fatores. Vamos dar uma olhada em como analisar este problema.
O Problema Ocorre no Painel Administrativo?
A primeira coisa que você deve fazer é ter certeza que esta tendo o mesmo problema tanto no front-end(seu site) como no back-end(wp-admin) do seu site. Se a mensagem de erro é a mesma nas duas páginas, então continue para o próximo passo. Se você está tendo um outro tipo de erro no back-end(wp-admin) como ‘one or more database tables are unavailable. The database may need to be repaired’, então você precisa reparar sua base de dados.
Se você acessar esta página utilizando o nome do seu site como base: http://www.seusite.com/wp-admin/maint/repair.php você pode ver que ele precisa do código abaixo para reparar sua base de dados.
Você pode fazer isso adicionando a seguinte linha de código no seu arquivo wp-config.php:
1
|
define( 'WP_ALLOW_REPAIR' , true); |
Assim que você tiver feito isso, você pode ver as configurações visitando está pagina: http://www.seusite.com/wp-admin/maint/repair.php
Lembre-se, o usuário não precisa estar logado para acessar esta funcionalidade quando esta definição acima for configurada. Isso é porque a intenção principal é reparar uma base de dados corrompida, usuários normalmente não conseguem logar quando sua base de dados se encontra nessa situação. Assim que você terminar de reparar e otimizar sua base de dados, tenha certeza de remover o código acima do seu arquivo functions.php.
Se essa solução não resolveu o seu problema, ou você está tendo problemas com o reparador continue lendo este artigo por que talvez você encontre outra solução que funcione.
Verificando o Arquivo wp-config.php
WP-Config.php é provavelmente o arquivo único mais importante de toda a instalação do seu WordPress. Aqui é onde você define detalhes especificos para que o WordPress se conecte com a sua base de dados. Se você alterou a senha do seu servidor, ou a senha da sua base de dados, então você vai precisar alterar este arquivo também. Primeira coisa que nós sempre devemos fazer é verificar se está tudo perfeito em seu 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 que DB_HOST nem sempre será ‘localhost’. Dependendo do seu Servidor de Hospedagem, isso será diferente. Para Servidores de Hospedagem recomendados para WordPress como Bluehost, HostGator é usado ‘localhost’, WPEngine usa o IP.
Você pode tentar resolver o seu problema apenas substituindo ‘localhost’ com o IP. É muito comum ver esse tipo de problema quando se está usando WordPress em um servidor local. Como MAMP, o valor DB_Host parece funcionar melhor com IP.
1
|
define( 'DB_HOST' , '127.0.0.1:8889' ); |
IPs variam de acordo com o Servidor de Hospedagem.
Se tudo neste arquivo esta correto (tenha certeza de verificar erros de ortografia), então é praticamente justo dizer que existe algo errado no servidor.
Verifique o seu Servidor (MySQL Server)
Frequentemente você irá perceber ‘Error Establishing a Database Connection’ quando o seu site é bombado com um monte de tráfego. Basicamente, seu servidor de hospedagem não pode suportar a carga (especialmente quando você está em uma hospedagem compartilhada). Seu site vai ficar muito lento e para alguns usuários mensagens de erros serão apresentadas. Então, a melhor coisa a se fazer é entrar em contato com o seu Servidor de Hospedagem e perguntar a eles se o seu servidor MySQL está respondendo.
Para aqueles usuários que desejam testar se o servidor MySQL manualmente, existem algumas coisas que você pode fazer. Teste outros sites no mesmo servidor para ver se eles estão tendo o mesmo problema. Se eles estão tendo o mesmo problema, então definitivamente tem algo errado com o seu servidor MySQL. Se você não tem nenhum outro site no mesmo servidor de hospedagem simplesmente vá em seu cPanel e tente acessar phpMyAdmin e conectar com a base de dados. Se você conectar, então nós precisamos verificar se seu usuário tem permissões suficientes. Crie um novo arquivo chamado testconnection.php e copie 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 ); ?> |
Tenha certeza de substituir o nome de usuário e senha. Se conectado com sucesso, então significa que seu usuário tem permissões suficientes, e tem outra coisa dando errado. Volte para seu arquivo wp-config.php para ter certeza que está tudo correto. Se você não consegue conectar a sua base de dados usando phpMyAdmin, então é algo com o seu servidor. Não significa necessariamente que o seu servidor MySQL esta Offline. Pode ser que seu usuário não tenha permissões suficientes.
Em nosso caso, nosso servidor MySQL esta funcionando. Todos os outros sites estavam funcionando normalmente exceto Script Certo. Quando tentamos usar nosso phpMyAdmin, nós nos deparamos com o seguinte erro:
#1045 – Access denied for user ‘cwp’@’%’ (using password: SIM)
Nós entramos em contato com WPEngine e o suporte rapidamente encontrou o problema. De alguma forma as permissões dos nossos usuários foram resetadas. Não temos certeza como isso aconteceu, mas aparentemente isso foi a razão. Eles fizeram backup e devolveram as permissões aos devidos usuários e nós conseguimos colocar nosso site online de volta.
Então se você tiver problemas com permissões de acesso, você deve entrar em contato com o seu Servidor de Hospedagem o mais rápido possível para que eles possam resolver o problema.
Soluções que Funcionaram para Outros
É importante notar, que as dicas acima podem não funcionar para você. Use por sua conta e risco e tenha certeza que você tem backups suficientes em caso de algo der errado. Um de nossos clientes estava com problema na base de dados e precisava ser reparada. Mesmo depois de reparar a base de dados o problema não sumiu. Nós tentamos diversas coisas e no final, o problema era a URL do site. Aparentemente foi uma mudança que causou o erro a ficar persistindo. Nós rodamos uma query pela base de dados através do phpMyAdmin:
1
|
UPDATE wp_options SET option_value= 'YOUR_SITE_URL' WHERE option_name= 'siteurl' |
Tenha certeza de substituir YOUR_SITE_URL com a sua URL atual, exemplo https://www.scriptcerto.com.br A tabela wp_option será diferente se você tiver alterado o prefixo padrão da base de dados do WordPress. Isso parece resolver o problema para nosso cliente e alguns outros após esse problema.
Tentar remover o conteúdo de active_plugins na tabela wp_options e editar o conteúdo de recently_edited. Basicamente isso resolve o problema em alguns casos.
Nós encontramos em diversas fontes que usuários simplesmente fazem o upload de uma nova cópia do WordPress e o problema pode ser fixado.
Este erro é realmente frustante. O que você tentou que funcionou para você? Nós ficaremos muito felizes de expandir os recursos deste artigo, então outros não precisaram perder muito tempo tentando encontrar uma solução.
Se você gostou desse artigo considere compartilhar nas redes sociais. Siga-nos nas redes sociais para acompanhar mais artigos como esse. Se de alguma forma este artigo lhe foi útil deixa seu comentário abaixo para podermos saber a sua opinião.