Resolver problemas

Tabelas corrompidas numa base de dados MySQL

Revisto a 3 min de leitura MySQL reparação

Sintomas

Um erro mencionar uma tabela não demonstra corrupção. Guarde o código e a mensagem exatos: SQL inválido, permissões, falta de espaço, bloqueios ou uma tabela inexistente requerem procedimentos diferentes.

Antes de reparar:

  1. Confirme através de uma verificação que a tabela concreta está marcada como corrompida.
  2. Identifique o seu motor no phpMyAdmin. REPAIR TABLE serve para motores como MyISAM e, no MariaDB, Aria; não repara InnoDB.
  3. Conserve uma cópia restaurável. Uma reparação pode bloquear a tabela ou descartar dados danificados.

Reparar através do phpMyAdmin

No phpMyAdmin, selecione apenas a tabela confirmada e com motor compatível e use Reparar tabela. Não selecione toda a base de dados como primeira medida.

Reparar através do cPanel

Em cPanel > Manage My Databases pode aparecer Repair Database. Esta ação atua sobre a base de dados completa; use-a apenas com uma cópia disponível e depois de confirmar que contém tabelas reparáveis por essa ferramenta.

Reparar através de SSH

Se for um utilizador com conhecimentos avançados e tiver o acesso SSH ativado, pode realizar a reparação com o seguinte comando:

mysqlcheck -u USUARIO -p BASE TABLA
mysqlcheck -u USUARIO -p --repair BASE TABLA

Em servidores MariaDB, o comando equivalente pode ser mariadb-check. Se a tabela for InnoDB, o servidor apresentar erros próprios ou não existir uma cópia válida, interrompa a intervenção e contacte o suporte; não force uma recuperação sobre o serviço partilhado.

Validar depois da reparação

Guarde o resultado completo da verificação e da reparação. Compare contagens e funções da aplicação com uma referência conhecida; a tabela voltar a abrir-se não demonstra que não foram descartados registos danificados.

Se o erro reaparecer, investigue o espaço, os registos e o estado do servidor com o suporte antes de repetir a reparação. Não adicione uma tarefa periódica de reparação como substituto do diagnóstico nem execute ferramentas sobre os ficheiros físicos de uma base de dados em uso.

A referência de REPAIR TABLE detalha os motores e os limites. Para InnoDB, a recuperação deve ser planeada de acordo com o erro e a cópia disponível.

Também lhe pode ser útil

Algo não bate certo ou mudou? Diga-nos e revemos.