Por vezes as coisas não correm como devem da parte do software e é necessário corrigir alguns problemas. Existem várias razões pelas quais poderá ser necessário reparar as bases de dados MySQL. Muitas das vezes as tabelas do MySQL ficam corrompidas, devido a falhas de escrita e leitura (input/output) ou até mesmo a um shutdown do servidor MySQL inesperado.
Este tutorial serve para verificar, analisar e reparar as tabelas de um servidor MySQL, quer esteja este configurado por um painel cPanel/WHM ou outro. De notar que este guia serve apenas para o administrador/sysadmin do servidor, uma vez que o processo irá reparar e verificar todas as bases de dados nesse servidor.
Se é o cliente final de uma empresa de alojamento e está com problemas numa base de dados corrompida, poderá tentar reparar as tabelas utilizando a ferramenta phpmyadmin ou a SQL Query Repair. Caso o problema não seja resolvido com o Repair feito através dos métodos descritos na frase anterior, poderá pedir ao sysadmin da sua empresa que efetue uma verificação exaustiva e se possível corra este comando.
Deverá ter em conta que nem sempre é possível efetuar a recuperação de uma base de dados/tabela utilizando o Repair, portanto deverá assegurar-se que tem sempre uma cópia de segurança.
Seguindo esta informação poderá reparar todas as bases de dados de um servidor MySQL, sejam elas 2, 10, 50, 100 ou mais, no entanto para correr os comandos abaixo irá necessitar de acesso root.
Uma vez que tenha garantido o acesso root, poderá executar os respectivos comandos para reparar as bases de dados MySql:
1 – UTILIZAR O MYISAMCHK
Verificar se as bases de dados necessitam de reparação:
myisamchk –check /var/lib/mysql/*/*.MYI |
Tente efectuar uma recuperação segura (safe-recover) usando o seguinte comando:
myisamchk –safe-recover /var/lib/mysql/*/*.MYI |
Se o “safe-recover” não funcionar, tente fazer um full recover:
myisamchk –recover /var/lib/mysql/*/*.MYI |
Utilize o parâmetro “force” para voltar ao normal:
myisamchk –safe-recover –extend-check –force /var/lib/mysql/*/*.MYI |
ou:
myisamchk –recover –extend-check –force /var/lib/mysql/*/*.MYI |
Estes comandos devem corrigir a maior parte dos problemas nas suas bases de dados.
2 – UTILIZAR MYSQLCHECK PARA REPARAR BASES DE DADOS MYSQL
Para além dos comandos acima, poderá também utilizar a ferramenta mysqlcheck para reparar as bases de dados do seu servidor MySQL. Veja abaixo os exemplos:
Reparar tabelas MySQL com o mysqlcheck
mysqlcheck –all-databases -r |
Analisar tabelas MySQL com o mysqlcheck
mysqlcheck –all-databases -a |
Optimizar tabelas MySQL com o mysqlcheck
mysqlcheck –all-databases -o |
Utilizando os comandos acima deverá corrigir os problemas nas tabelas das bases de dados dos seus servidores MySQL. Deverá ter o cuidado de efetuar o backup de bases de dados vitais antes de correr os comandos acima de forma a poder reverter caso alguma coisa corra mal.