Como reparar uma tabela MySQL corrompida (phpMyAdmin ou linha de comando)
Oi! Aqui é a Sensei da GeHost 🧘♀️ Se você chegou até aqui, provavelmente seu site ou sistema mostrou algum erro estranho envolvendo banco de dados — tipo "Table is marked as crashed" ou "Table './seubanco/tabela' is marked as crashed and should be repaired". Respira: isso é mais comum do que parece e, na maioria das vezes, tem conserto rápido. Vamos passo a passo, com calma, do jeitinho que uma tabela corrompida merece ser tratada.
Por que uma tabela MySQL corrompe?
Os motivos mais frequentes são:
- Uma queda de energia ou reinicialização inesperada do servidor no meio de uma gravação;
- Um processo ou script que foi interrompido bruscamente enquanto escrevia no banco;
- Falhas de disco ou de sistema de arquivos;
- Encerramento indevido do MySQL enquanto havia operações pendentes.
Nada disso é "culpa sua" — é só o tipo de coisa que acontece em qualquer banco de dados, em qualquer hospedagem do mundo. O importante é saber resolver.
Dica da Sensei: antes de mexer em qualquer tabela, faça um backup do banco (ou peça um pela ferramenta Backup do cPanel). Reparo de tabela é seguro na grande maioria dos casos, mas backup nunca é exagero.
Método 1: Reparando pelo phpMyAdmin (o mais fácil)
Passo 1 — Acesse o cPanel
Entre no seu cPanel com o usuário e senha da hospedagem. Se tiver dúvida de onde acessar, confira no seu e-mail de boas-vindas ou no painel.gehost.com.br.
Passo 2 — Abra o phpMyAdmin
Dentro do cPanel, procure o grupo Bancos de Dados e clique em phpMyAdmin. Ele vai te levar direto para a lista dos seus bancos, sem precisar digitar senha de novo.
Passo 3 — Selecione o banco e encontre a tabela problemática
- No menu à esquerda do phpMyAdmin, clique no nome do banco de dados;
- A lista de tabelas vai aparecer. Tabelas corrompidas costumam vir com um ícone de alerta ou aparecer mencionadas na mensagem de erro do seu site;
- Marque a caixinha ao lado da(s) tabela(s) que quer reparar (dá pra marcar mais de uma).
Passo 4 — Use a opção "Reparar tabela"
- Com a(s) tabela(s) marcada(s), procure no rodapé da lista o menu suspenso chamado "Com as selecionadas";
- Escolha a opção "Reparar tabela" (ou "Repair table", se seu phpMyAdmin estiver em inglês);
- O phpMyAdmin vai executar o reparo e mostrar um resumo — o ideal é ver "OK" ou "Table is already up to date" no resultado.
Alternativa: usando o SQL diretamente
Se preferir (ou se a opção de menu não aparecer para o seu tipo de tabela), você pode rodar o comando manualmente:
- No phpMyAdmin, clique na aba SQL do seu banco;
- Digite o comando abaixo, trocando pelo nome real da sua tabela:
REPAIR TABLE nome_da_tabela;
- Clique em Executar (ou Go) e aguarde o resultado.
Dica da Sensei: se a tabela usa o mecanismo InnoDB, o comando REPAIR TABLE pode não se aplicar (esse comando é mais voltado ao MyISAM). Nesse caso, tente primeiro CHECK TABLE nome_da_tabela; para diagnosticar, e se o problema persistir, o caminho mais seguro costuma ser restaurar a tabela a partir de um backup recente ou pedir apoio ao suporte.
Método 2: Reparando via linha de comando
Se o seu plano tiver acesso a terminal, também é possível reparar tabelas usando a ferramenta mysqlcheck, que faz basicamente a mesma coisa que o botão do phpMyAdmin, só que via comando:
mysqlcheck -r nome_do_banco nome_da_tabela -u seu_usuario -p
O sistema vai pedir a senha do usuário do banco e, em seguida, mostrar se a tabela foi reparada com sucesso. Para reparar todas as tabelas de um banco de uma vez, basta omitir o nome da tabela:
mysqlcheck -r nome_do_banco -u seu_usuario -p
Dica da Sensei: a disponibilidade de terminal/SSH pode variar conforme o seu plano. Se não tiver certeza se o seu tem esse acesso, dá uma olhadinha no painel.gehost.com.br ou chama o suporte — eles te dizem certinho o que está incluso no seu contrato.
E se o reparo não resolver?
Às vezes a corrupção é mais séria e o reparo automático não é suficiente. Se isso acontecer:
- Verifique se você tem um backup recente para restaurar a tabela ou o banco inteiro (pela ferramenta de Backup do cPanel);
- Evite ficar tentando comandos repetidos "no escuro" — cada tentativa mal-sucedida pode piorar a situação;
- Fale com o suporte da GeHost explicando o erro exato que apareceu (print da mensagem ajuda muito!). Se você está dentro do período de suporte gratuito (30 dias após a entrega), é só chamar.
Como evitar que isso aconteça de novo
- Programe backups regulares do seu banco de dados (mesmo que seu sistema já tenha uma rotina própria);
- Evite interromper manualmente processos que estejam gravando no banco (como importações grandes);
- Se você usa algum CMS (WordPress, por exemplo), mantenha plugins e o próprio sistema atualizados — muita corrupção de tabela vem de plugins mal configurados fazendo escritas simultâneas conflitantes.
Pronto! Na maioria dos casos, esses passos resolvem sozinhos. E se travar em algum ponto, sem problema nenhum — é só chamar a gente. Cuidar do seu banco de dados com carinho também é cuidar do seu negócio. 💙