Erro de ligação à base de dados: as causas por ordem

A página mostra uma linha branca com «Error establishing a database connection» e mais nada. Não é um erro do WordPress: é o WordPress a dizer que pediu os dados à base e não os recebeu. As causas são poucas e têm uma ordem de probabilidade que raramente falha.

Antes de editar o wp-config.php, guarde uma cópia dele. É o ficheiro com a senha da base de dados. Descarregue-o para o seu computador, ou copie-o para fora do public_html. Nunca deixe uma cópia chamada wp-config.bak ou wp-config.txt dentro da pasta do site: um ficheiro com essas extensões é servido em texto simples a quem lhe acertar no nome, e a senha fica pública.

Primeiro: é só este site?

Trinta segundos que poupam meia hora. Responda a estas três:

1 O /wp-admin dá o mesmo erro? Se sim, é a base, e não o site. Se o painel abre, o problema é outro.
2 Tem outro site na mesma conta? Se o outro abre, o serviço de base de dados está de pé e o problema é desta instalação.
3 O phpMyAdmin abre a partir do cPanel? Se abre e vê a base lá com as tabelas todas, então a base existe e o que falha é a autorização. Veja bases de dados e phpMyAdmin.

As causas, por ordem

Causa Como se reconhece e como se resolve
1. Senha errada A mais comum, de longe. Alguém mudou a senha do utilizador da base no cPanel e não a foi corrigir no wp-config.php. Também acontece sempre que um site é copiado de outro servidor.
2. Utilizador não associado à base O utilizador existe, a base existe, mas não estão ligados. Em Bases de Dados MySQL, na secção Adicionar utilizador à base de dados, junte os dois e dê-lhe TODOS OS PRIVILÉGIOS.
3. Nome da base errado Numa conta partilhada, o nome real leva o prefixo da conta à frente: não é wordpress, é conta_wordpress. O mesmo para o nome do utilizador. Quem traz um site de fora esquece-se disto sempre.
4. DB_HOST errado Aqui é localhost. Se o ficheiro veio de outro fornecedor, pode trazer um endereço ou um nome de servidor que aqui não existe.
5. A conta bateu num limite Sem espaço em disco, ou sem ficheiros disponíveis, a base deixa de conseguir escrever e a ligação cai. Veja o que o cPanel mostra e os limites que não vêm no anúncio.
6. Tabela corrompida O erro aparece e desaparece, ou aparece só em algumas páginas. Trata-se a seguir, com a reparação.
7. Serviço em baixo do nosso lado Raro, e reconhece-se por ser em todos os sites da conta ao mesmo tempo, incluindo o phpMyAdmin. Se for esse o caso, não mexa em nada: abra um pedido.

Conferir as quatro linhas

No cPanel, Gestor de Ficheiros, pasta do site, wp-config.php, Editar. Perto do topo estão as quatro linhas que interessam:

1 define( 'DB_NAME', 'conta_wordpress' ); o nome da base, com o prefixo da conta
2 define( 'DB_USER', 'conta_wpuser' ); o utilizador, também com prefixo
3 define( 'DB_PASSWORD', '...' ); a senha desse utilizador
4 define( 'DB_HOST', 'localhost' ); aqui é sempre este
Não adivinhe a senha: ponha outra. É mais rápido e não deixa dúvidas. Em Bases de Dados MySQL, na lista de utilizadores, escolha Alterar senha, gere uma nova (gerador de senhas), grave, e ponha exactamente essa no wp-config.php. Cuidado com espaços a mais no princípio ou no fim quando colar.
Aspas e apóstrofos. Se a senha tiver apóstrofo, barra invertida ou cifrão, ela parte a linha do PHP e o erro mantém-se, agora por outra razão. O caminho seguro é gerar uma senha só com letras e números, longa, em vez de lutar com o escape.

Se as credenciais estão certas: reparar as tabelas

O WordPress traz uma ferramenta de reparação que não precisa de login. Liga-se, usa-se e desliga-se:

1 Acrescente define( 'WP_ALLOW_REPAIR', true ); ao wp-config.php.
2 Abra https://yourcompany.com/wp-admin/maint/repair.php e escolha reparar, ou reparar e optimizar.
3 Tire a linha a seguir. Enquanto lá estiver, essa página está aberta a toda a gente, sem senha nenhuma.

Se prefere fazer à mão, o phpMyAdmin tem o mesmo: seleccione todas as tabelas e escolha Reparar tabela na lista do fundo.

Quando o erro vai e vem

Um erro intermitente, que aparece às horas de ponta e desaparece sozinho, raramente é uma senha errada: uma senha errada falha sempre. Isso é a conta a bater num limite, normalmente o número de pedidos em simultâneo. Veja o Resource Usage no cPanel à hora em que acontece: acompanhar o desempenho do site no cPanel e os limites que não vêm no anúncio.

A causa de fundo costuma ser um site pesado a demorar demasiado em cada pedido. Aí, o artigo é outro: o site está lento.

Se nada disto resolve

Veja o error_log da pasta do site, porque nesta avaria ele costuma ter uma linha com a razão exacta da recusa: onde está o log de erros do PHP. Se o ficheiro de configuração estiver estragado ou perdido, reconstrua-o: recriar a ligação do wp-config.php. Se não souber qual das bases é a sua, descubra-a primeiro. E, se a base ficou mesmo danificada, reponha uma cópia de um dia em que funcionava: como restaurar os seus dados.

Mande-nos o domínio, a hora a que começou e a linha do error_log.

Abrir um pedido

VEJA TAMBÉM

Hospedagem WordPress

Gerador de senhas

Política de Suporte

PRODUTO RECOMENDADO

Alojamento de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 9.000,00 Kz/mês

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?