12 de outubro de 2009

MySQL: Como checar e corrigir todos os erros de todos os bancos de dados?

Se você já teve seu servidor desligado por queda de energia, problemas quaisquer ou fez por qualquer motivo uma reiniciada forçada (pelo painel do gerenciamento da hospedagem, por exemplo, sem chamar o reboot no SSH), já deve ter percebido que o MySQL é muito frágil – fácil de apresentar erros em tabelas. Algumas vezes os CMS até funcionam, mas uma ou outra coisa parece estranha ou “trava”.

Depois da reiniciada dá-lhe uma ida no console, e rodar comandos do MySQL, achar o erro, reparar, otimizar… Nessas horas um único comando facilita, né? É só guardar:

mysqlcheck -u root -p –auto-repair –check –optimize –all-databases

Ele vai checar e reparar automaticamente TODAS as tabelas, sem que você precise ficar procurando qual teve problemas. E ainda otimiza elas (com o –optimize). Uma mão na roda e tanto para administradores. Não é tão difícil decorar (auto-repair, check, optimize, all-databases), mas vale a pena guardar em local seguro, pode ser num txt dentro da pasta do root no servidor, como eu faço.

Uma coisa boa é fechar o Apache (ou o servidor que for) ao dar o comando, e quando terminar, iniciar o servidor web novamente. Assim a reparação é feita muito mais rapidamente, já que não terá requisições para atender nem ficar esperando.

Em alguns sistemas, podem ser requeridos login e senha, segue então a formatação:

mysqlcheck -o –all-databases –user=<> –password=<>
mysqlcheck -F -r -v –all-databases –user=<> –password=<>

Nenhum comentário:

voltar para o topo