Como corrigir o erro ao estabelecer uma conexão de banco de dados no WordPress

Se você estiver navegando na web há algum tempo, você já viu esse erro várias vezes. Erro Estabelecer uma conexão de banco de dados é uma dessas maldições que podem ser causadas por muitos motivos. Como um iniciante do WordPress, isso poderia ser extremamente frustrante especialmente quando aconteceu sozinho sem que você mudasse nada. Nós enfrentamos esta questão ontem em nosso próprio site. Levou um pouco mais de 20 minutos para detectar e resolver o problema. Ao fazer a pesquisa para encontrar possíveis causas, percebemos que não havia um bom artigo que abrangeu tudo. Neste artigo, mostraremos como corrigir o erro ao estabelecer uma conexão de banco de dados no WordPress ao compilar uma lista de soluções em um só lugar.

Nota: Antes de fazer qualquer banco de dados alterar, certifique-se de ter backups suficientes.

Por que você comete esse erro?

Bem, em resumo, você está recebendo esse erro porque o WordPress não conseguiu estabelecer uma conexão de banco de dados. Agora, a razão pela qual o WordPress não consegue estabelecer uma conexão de banco de dados pode variar. Pode ser que as credenciais de login do seu banco de dados sejam erradas ou tenham sido alteradas. Pode ser que seu servidor de banco de dados não responda. Pode ser que o seu banco de dados tenha sido corrompido. Em nossa experiência, a maioria das vezes esse erro ocorre por causa de algum tipo de erro de servidor, no entanto, poderia haver outros fatores também. Vamos dar uma olhada em como solucionar esse problema.

O problema ocorre para / wp-admin / também?

A primeira coisa que você deve fazer é certificar-se de que você está recebendo o mesmo erro tanto no front-end do site quanto no back-end do site (wp-admin). Se a mensagem de erro for a mesma em ambas as páginas “Erro ao estabelecer uma conexão de banco de dados”, vá 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 não estão disponí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-o apenas antes ‘Isso é tudo, pare de editar! Blogue feliz linha wp-config.php.

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

Reparar banco de dados no WordPress

Lembre-se, o usuário não precisa estar logado para acessar esta funcionalidade quando esta definida está definida. Isso ocorre porque sua principal intenção é reparar um banco de dados corrompido, os usuários geralmente não podem entrar quando o banco de dados está corrompido. Então, assim que terminar de reparar e otimizar seu banco de dados, certifique-se de remover isso do seu wp-config.php.

Se este reparo não solucionou o problema, ou você está tendo problemas para executar o reparo, continue a ler este artigo, pois você pode encontrar outra solução para funcionar.

Verificando o arquivo WP-Config

WP-Config.php é provavelmente o arquivo mais importante em toda a instalação do WordPress. Aqui é onde você especifica os detalhes do WordPress para conectar seu banco de dados. Se você alterou sua senha de root ou a senha do usuário do banco de dados, então você precisará alterar esse arquivo também. A primeira coisa que você deve verificar sempre é se tudo no seu arquivo wp-config.php é o mesmo.

definir ('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 pode não ser 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 corrigiram o problema ao substituir o local com o 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.

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

Os IPs variam para os serviços de hospedagem web on-line.

Se tudo neste arquivo estiver correto (certifique-se de verificar erros de digitação), é justo dizer que há algo errado no final do servidor.

Verifique o seu Web Host (Servidor MySQL)

Muitas vezes você notará este erro ao estabelecer conexão de banco de dados quando seu site for encharcado com muito tráfego. Basicamente, seu servidor anfitrião simplesmente não pode lidar com a carga (especialmente quando você está em hospedagem compartilhada). Seu site ficará muito lento e alguns usuários até produzirão o erro. Então, o melhor que você deve fazer é entrar no telefone ou livechat com seu provedor de hospedagem e perguntar se o seu servidor MySQL é responsivo.

Para aqueles usuários que desejam testar se o servidor MySQL está executando você mesmo, 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 de errado com seu servidor MySQL. Se você não possui outro site nessa mesma conta de hospedagem, simplesmente vá para o seu cPanel e tente acessar o phpMyAdmin e conecte o banco de dados. Se você pode se conectar, precisamos verificar se o usuário do banco de dados tem permissão suficiente. Crie um novo arquivo chamado testconnection.php e cole o seguinte código nele:

Certifique-se de substituir o nome de usuário e a senha. Se o conectado com sucesso, significa que seu usuário tem permissão suficiente, e há algo mais que está errado. Volte para o seu arquivo wp-config para se certificar de que tudo está correto (revisar os erros de digitação).

Se você não pode se conectar ao banco de dados, vá para phpMyAdmin, então você sabe que é algo com seu servidor. Isso não significa necessariamente que o seu servidor MySQL esteja desativado. Isso pode significar que seu usuário não possui permissão suficiente.

local

# 1045 – Acesso negado para o usuário ‘foo’ @ ‘%’ (usando a senha: SIM)

Chegamos ao telefone com o HostGator e o suporte deles rapidamente encontrou o problema. De alguma forma, as permissões do nosso usuário foram redefinidas. Não tenho certeza de como isso aconteceu, mas aparentemente essa foi a razão. Eles voltaram e restauravam as permissões e conseguimos recuperar o site ao vivo.

Então, se você receber o erro de acesso negado na conexão ao seu phpMyAdmin ou através de resultados testconnection.php, então você deve entrar em contato com o seu host imediatamente para que ele consiga corrigi-lo.

Soluções que funcionaram para outros

É importante notar que isso pode não funcionar para você. Use a sua conta e risco e certifique-se de que você tenha 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 foi a URL do site. Aparentemente, isso foi alterado o que causou o erro para persistir. Ele executou a consulta SQL indo para phpMyAdmin:

UPDATE wp_options SET option_value = 'YOUR_SITE_URL' WHERE option_name = 'siteurl' 

Certifique-se de substituir YOUR_SITE_URL pelo exemplo do URL real: http://www.site.com. As wp_options serão diferentes se você tiver alterado o prefixo de banco de dados WordPress padrão.

Isso pareceu resolver o problema para ele e alguns outros que comentaram em seu post também.

Sachinum sugeriu que ele conseguiu 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. Em seguida, ele reverteu as configurações de volta para o usuário do banco de dados, e continuou a funcionar. Ele não conseguiu descobrir o que estava errado, mas concluiu que era um erro de digitação.

Cutewonders sugeriu que eles removeram o conteúdo de active_plugins na tabela wp_options e editaram os conteúdos de recentemente_edited. Basicamente, isso pareceu resolver o problema. Por favor, sua resposta completa aqui.

Lemos em inúmeras fontes que os usuários simplesmente carregaram uma nova cópia do WordPress e corrigiu o erro.

Este é um erro realmente frustrante. O que você tentou que parecia funcionar para você? Ficamos felizes em expandir esse recurso, para que outros não tenham que perder tanto tempo buscando uma solução.