Resolver problemas
Tabelas corrompidas numa base de dados MySQL
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:
- Confirme através de uma verificação que a tabela concreta está marcada como corrompida.
- Identifique o seu motor no phpMyAdmin.
REPAIR TABLEserve para motores como MyISAM e, no MariaDB, Aria; não repara InnoDB. - 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
- Conflito com a tabela «system» do Drupal no MySQL 8 (erro 1064) Resolva o erro 1064 do Drupal 6 e 7 com o MySQL 8 causado pela tabela system, palavra reservada: atu...
- Joomla 1.0 e 1.5 com o MySQL 8, erro com a palavra reservada «groups» Faça com que um Joomla 1.0 ou 1.5 funcione com o MySQL 8 escapando a palavra reservada groups nas co...
- Porque é que o cPanel e o phpMyAdmin mostram tamanhos diferentes para uma base de dados Esclarece porque é que o cPanel e o phpMyAdmin calculam tamanhos diferentes, como localizar as tabel...
- PrestaShop: «An exception occurred while establishing a connection to figure out your platform version» Solução para o erro SQLSTATE[HY000] [2026] SSL_CTX_set_default_verify_paths failed ao instalar ou at...
Algo não bate certo ou mudou? Diga-nos e revemos.