Reparar tabelas corrompidas no MySQL

Já precisou reparar tabelas corrompidas em seu banco de dados MySQL?

Por vezes, pode acontecer de uma tabela do MySQL estar corrompida. Isso acontece quando o storage engine da tabela é o MyISAM. O MyISAM não é mais o motor padrão do MySQL desde a versão 5.6. O padrão atual é o InnoDB (default na 5.6 e 5.7 e possivelmente nas próximas), onde não acontece esse tipo de dificuldade.

Documentação oficial: https://dev.mysql.com/doc/refman/8.0/en/corrupted-myisam-tables.html.

Por que as tabelas corrompem?

Ainda que o formato MyISAM seja bom, útil e confiável (todas as alterações feitas em uma tabela feita por uma instrução SQL são gravadas antes que a instrução retorne), as tabelas podem corromper se algum dos seguintes eventos ocorrer:

- O processo mysqld é interrompido (kill) no meio da escrita;
- O servidor de banco de dados é desligado;
- Falhas de hardware;
- Algum bug no MySQL ou no MyISAM;
- Uso de um programa externo modificando uma tabela enquanto também é modificada pelo server ao mesmo tempo.

Reparar tabelas corrompidas

As tabelas podem ser reparadas através do phpMyAdmin e você mesmo tem acesso a esta funcionalidade.

É importante realizar o backup da base de dados antes de fazer qualquer alteração, através da opção de backup do Painel Sites, em Gerenciar bancos MySQL ou pelo phpMyAdmin.

Reparar tabelas corrompidas no MySQL

Também pode ser alterado o storage engine para o InnoDB através do seguinte comando e assim evitar futuras dificuldades:
Altere o termo nome-da-tabela de acordo com a situação.

ALTER TABLE nome-da-tabela ENGINE=InnoDB;