Banco de dados 34 visualizações

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

Ver no WHMCS

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

Oi! Aqui é a Sensei da GeHost 🦉 Se o seu site apareceu com um erro estranho tipo "Table './seubanco/tabela' is marked as crashed" ou algo parecido, respira fundo: isso é mais comum do que parece e, na maioria das vezes, tem conserto rápido. Vamos juntos, passo a passo, sem enrolação.

Dica da Sensei: "corrompida" não significa que seus dados sumiram. Na grande maioria dos casos é só um índice ou estrutura interna da tabela que ficou inconsistente — geralmente depois de uma queda de energia, um script que travou no meio de uma gravação, ou um plugin mal comportado (WordPress, eu sei que é você às vezes 😅). O reparo resolve isso sem apagar suas informações.

Antes de mais nada: faça um backup

Sei que dá vontade de sair clicando em "reparar" na hora, mas o primeiro passo sempre é se proteger. Vá até a área de Backup do seu cPanel e gere ao menos um backup do banco de dados envolvido. Assim, se algo sair diferente do esperado, você tem uma cópia de segurança pra recorrer.

Opção 1: Reparando pelo phpMyAdmin (o jeito mais fácil)

Essa é a forma mais amigável, ideal se você não tem intimidade com comandos. Vamos lá:

  1. Acesse o seu cPanel com o usuário e senha do seu plano de hospedagem.
  2. Na tela inicial, procure a seção de Banco de Dados e clique em "Bancos de Dados MySQL".
Tela de Bancos de Dados MySQL no cPanel
  1. Nessa mesma área (ou no menu de Banco de Dados do cPanel) você vai encontrar o atalho para o phpMyAdmin — é ele quem vai fazer o trabalho pesado.
  2. Dentro do phpMyAdmin, no menu lateral esquerdo, clique no nome do banco de dados que está com problema. Vai aparecer a lista de todas as tabelas dele.
  3. Marque a caixinha ao lado da tabela corrompida (se não souber qual é, pode marcar todas — não tem problema em reparar uma tabela saudável, o phpMyAdmin só pula ela).
  4. Role a tela até o final, onde tem um menu chamado "Com a(s) tabela(s) marcada(s):". Clique nele e escolha a opção "Reparar tabela" (em inglês, "Repair table").
  5. Pronto! O phpMyAdmin vai mostrar um relatório dizendo se a tabela foi reparada com sucesso (status: OK).
Dica da Sensei: se a opção "Reparar tabela" não aparecer no menu, é porque a tabela usa um tipo de motor (engine) que não suporta esse comando por ali, como o InnoDB. Não se preocupe — é só seguir para a Opção 2 abaixo, que resolve praticamente qualquer caso.

Opção 2: Reparando por linha de comando (SSH)

Se você tem acesso via SSH ao seu plano e já se sente confortável com terminal, esse caminho costuma ser ainda mais rápido e funciona bem tanto para tabelas MyISAM quanto InnoDB.

  1. Conecte-se à sua hospedagem via SSH normalmente.
  2. Use a ferramenta mysqlcheck, que foi feita exatamente pra isso. O comando básico é:

mysqlcheck -u SEU_USUARIO -p --auto-repair --check NOME_DO_BANCO

  • SEU_USUARIO é o usuário do banco de dados (não confunda com o usuário do cPanel).
  • O parâmetro -p vai pedir a senha do banco na hora — é normal a tela não mostrar nada enquanto você digita.
  • NOME_DO_BANCO é o nome do banco de dados que você quer checar e reparar.

Se quiser checar (e reparar automaticamente, se precisar) todos os bancos de uma vez, use:

mysqlcheck -u SEU_USUARIO -p --auto-repair --all-databases

O sistema vai listar tabela por tabela, mostrando OK para as que estão saudáveis e repaired para as que precisaram de conserto.

Dica da Sensei: não sabe seu usuário e senha de banco de dados? Eles ficam configurados na mesma tela de "Bancos de Dados MySQL" do cPanel que mostramos ali em cima. E se preferir, nosso suporte também te ajuda a localizar essa informação com tranquilidade.

E se o problema continuar depois do reparo?

Às vezes a corrupção é reflexo de outra coisa — um plugin desatualizado, um script rodando fora de hora, ou um pico de uso que interrompeu uma gravação no banco. Se o erro voltar a aparecer com frequência, vale a pena:

  • Atualizar o sistema (WordPress, plugins, temas) para a versão mais recente;
  • Revisar se algum script seu está sendo interrompido no meio de uma operação no banco;
  • Falar com o nosso suporte para investigarmos juntos a causa — estamos aqui pra isso.

E lembre-se: você teve 30 dias de suporte gratuito logo após a entrega da sua hospedagem para casos como esse. Fora desse período, é só abrir um chamado normalmente pelo painel.gehost.com.br que a equipe te atende com todo cuidado. 💙

Resumo rápido da Sensei: backup primeiro, depois phpMyAdmin → "Reparar tabela" (mais fácil) ou mysqlcheck --auto-repair via SSH (mais poderoso). Na dúvida, chama o suporte — a gente resolve com você.
Precisa de Ajuda?

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