Erro ao estabelecer uma conexão com o banco de dados? Veja como conferir banco, usuário, senha e host no cPanel e corrigir o arquivo wp-config.php.
A mensagem "Erro ao estabelecer uma conexão com o banco de dados" (no WordPress em inglês, "Error establishing a database connection") quer dizer que o site não conseguiu entrar no MySQL. Na grande maioria dos casos, algum dado do arquivo de configuração não bate com o que existe no cPanel, principalmente depois de uma migração ou troca de senha.
Antes de começar
- Acesso ao cPanel e ao Gerenciador de arquivos (ou FTP).
- Saber onde fica a configuração do seu sistema: no WordPress é o
wp-config.php, na pasta do site; no Joomla, oconfiguration.php; em outros sistemas, procure por "config" ou pelo arquivo de ambiente na raiz do projeto.
Passo a passo para corrigir
- Veja os dados reais no cPanel. Abra Bancos de dados MySQL (MySQL Databases). Em Bancos de dados atuais, anote o nome exato do banco e quais usuários têm acesso a ele. No cPanel, banco e usuário sempre começam com o nome da conta e um sublinhado, por exemplo
conta_wp. - Compare com o arquivo de configuração. No WordPress, os quatro dados ficam assim:
Quando o site e o banco estão na mesma hospedagem,define( 'DB_NAME', 'conta_wp' ); define( 'DB_USER', 'conta_wpuser' ); define( 'DB_PASSWORD', 'a-senha-do-usuario' ); define( 'DB_HOST', 'localhost' );DB_HOSTélocalhost. Depois de uma migração, é comum ficar o endereço do servidor de banco do provedor antigo. - Redefina a senha se tiver dúvida. Em Usuários atuais, clique em Alterar senha (Change Password) no usuário, defina uma senha nova e coloque a mesma no arquivo de configuração. Evite aspas simples e barra invertida na senha: elas quebram a linha do PHP.
- Garanta a permissão do usuário no banco. Em Adicionar usuário ao banco de dados, escolha o usuário e o banco, clique em Adicionar, marque Todos os privilégios (All Privileges) e salve.
- Confirme que o banco tem tabelas. Abra o phpMyAdmin e clique no banco. Banco vazio quer dizer que a importação não foi feita ou falhou no meio.
Mensagens de erro e o que significam
| Mensagem | Causa | Solução |
|---|---|---|
Access denied for user 'conta_wpuser'@'localhost' | Senha errada ou usuário sem permissão no banco | Passos 3 e 4 |
Unknown database 'conta_wp' | Nome do banco errado ou banco inexistente | Passo 1; crie o banco se for o caso |
Can't connect to MySQL server ou Connection refused | DB_HOST errado | Use localhost para banco na mesma hospedagem |
has more than 'max_user_connections' active connections | Conexões simultâneas demais: pico de acesso, robôs ou consultas lentas | Ative cache de páginas, bloqueie robôs abusivos e aguarde o pico passar |
Table 'conta_wp.wp_options' doesn't exist | Prefixo das tabelas diferente ou importação incompleta | Confira $table_prefix no wp-config.php e reimporte o banco |
Problemas comuns
"Uma ou mais tabelas do banco de dados não estão disponíveis"
O WordPress encontrou tabelas danificadas. Acrescente define( 'WP_ALLOW_REPAIR', true ); no wp-config.php, abra https://seudominio.com.br/wp-admin/maint/repair.php, clique em reparar e depois remova a linha.
O erro aparece e some sozinho
Costuma ser limite de conexões em horário de pico. Um plugin de cache (o LiteSpeed Cache, por exemplo) reduz muito as consultas ao banco.
Disco da conta cheio
Sem espaço, o banco não consegue gravar. Confira o Uso de disco na coluna lateral do cPanel.
Conexão de fora da hospedagem (MySQL remoto)
Só é necessário quando um programa fora da hospedagem (um sistema de gestão, um app, o seu computador) precisa acessar o banco. Adicione o IP público desse equipamento no cPanel, em MySQL remoto (Remote MySQL). Prefira o IP exato: o curinga % libera o banco para a internet inteira. O acesso externo também depende de a porta 3306 estar liberada no servidor; confirme com o suporte antes de configurar.