Como corrigir o erro de Tabela corrompida no Banco de Dados via SSH imprimir

  • 0

Mensagem de erro:
mysqldump: Got error: 144: Table './nome-completo-do-banco-de-dados/tabela-corrompida' is marked as crashed and last (automatic?) repair failed when using LOCK TABLES

Na mensagem acima, substitua as partes em negito pelas informações do seu banco de dados.

A correção pode ser feita via SSH usando o seguinte comando:


Exemplo de como ficaria, caso o problema estivesse no Banco de dados do Centova -> Hospedado no cPanel --> com a tabela "playbackstats_tracks" corrompida:
#myisamchk -r /var/lib/mysql/usuário_centova/playbackstats_tracks.MYI --force

*Usei o comando --force para que não haja erro ao tentar resolver o problema.

A mensagem de saída será:
- recovering (with sort) MyISAM-table '/var/lib/mysql/ipstm_centova/playbackstats_tracks.MYI'
Data records: 13708746
- Fixing index 1
- Fixing index 2
- Fixing index 3


Após isso sua tabela estará normalizada.




Caso o comando acima não tenha resolvido o problema, veja uma opção mais avançada e também funcional que foi encontrado no site: Yes Linux


MySQL: Verificando tabelas corrompidas e Corrigindo

As vezes por algum motivo uma tabela do seu banco de dados pode estar corrompida.
É altamente recomendável checar a integridade destas tabelas periódicamente e caso haja algum problema, efetuar a correção.

Existe uma forma de reparar imediatamente durante a checagem, porém minha opinião pessoal é: ANTES DE MODIFICAR ALGO, FAÇA BACKUP.

Por este motivo, vamos checar e caso a gente encontre algum problema, manualmente faremos a correção após um backup.

Vamos aos passos:

Primeiramente vamos varrer o banco de dados em busca de alguma tabela corrompida:
mysqlcheck -A -e -u root -psenha_do_banco

A ideia é que o status de todas as tabelas estajam com OK.
Caso isto não seja uma realidade, você pode fazer o “repair” desta tabela, mas sugiro antes dar um dump de sua base de dados.
O comando abaixo vai fazer um backup da base onde você encontrou a irregularidade. substitua “senha_do_banco” pela senha que esta cadastrada no banco de dados (a senha é colada no -p mesmo) e substitua “base_a_ser_copiada” pelo nome do database onde está a tabela corrompida.
# mysqldump -u root -psenha_do_banco base_a_ser_copiada > /root/base.dump


Pronto, agora temos como voltar se der alguma coisa errada. Vamos corrigir a tabela. Conecte no banco
# mysql -u root -p

Conecte-se na base de dados onde está a tabela corrompida (substitua “database” pelo nome da base)
use database;


Cheque novamente a tabela em questão (substitua “tabela” pelo nome da tabela corrompida)
check table tabela EXTENDED;


Mande corrigir a tabela (substitua “tabela” pelo nome da tabela corrompida)
repair table tabela;


Pronto, se tudo correu bem sua tabela está corrigida. Lembre-se, sofre menos quem previne. Verifique periódicamente seu sistema, solucionar um problema no começo é mais facil que um problema crônico.

Coloque no script de backup uma ação para checar suas tabelas e notifica-lo.

Ah, deu problema a tentativa de correção? Volte o backup:
# mysql -u root -psenha_do_banco nome_da_base > /root/base.dump


Problema resolvido!

Esta resposta lhe foi útil?

« Retornar