Banco de dados 41 visualizações

Como reparar uma tabela MySQL corrompida pelo phpMyAdmin ou linha de comando

Ver no WHMCS

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.

Tela de login do cPanel com campos de usuário e senha

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.

Tela de Bancos de Dados MySQL do cPanel

Passo 3 — Selecione o banco e encontre a tabela problemática

  1. No menu à esquerda do phpMyAdmin, clique no nome do banco de dados;
  2. 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;
  3. 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"

  1. Com a(s) tabela(s) marcada(s), procure no rodapé da lista o menu suspenso chamado "Com as selecionadas";
  2. Escolha a opção "Reparar tabela" (ou "Repair table", se seu phpMyAdmin estiver em inglês);
  3. 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:

  1. No phpMyAdmin, clique na aba SQL do seu banco;
  2. Digite o comando abaixo, trocando pelo nome real da sua tabela:

REPAIR TABLE nome_da_tabela;

  1. 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. 💙

Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.