Il arrive que parfois une table SQL soit complètement plantée, ce qui peut bloquer l’accès à la base de données et donc l’accès au site.
Pour éviter cela, j’ai écrit un petit script bash qui me permet de stopper le serveur MySQL, procéder à la réparation de toutes les tables de toutes les bases de données puis relancer le serveur MySQL, Apache et Varnish.
#!/bin/sh
# MySQL Auto-Repair
# Written by Matt - skyminds.net
# stop the MySQL server
/etc/init.d/mysql stop
# check for errors
myisamchk /var/lib/mysql/*/*.MYI
# ask permission to repair
read -p "Repair tables ? (y/n)" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]
then
# repair everything
myisamchk -r /var/lib/mysql/*/*.MYI
# restart servers
/etc/init.d/mysql restart
/etc/init.d/apache2 restart
/etc/init.d/varnish restart
else
/etc/init.d/mysql restart
fi
C’est le genre de petit fichier bash à garder au frais sur le serveur, facile à lancer en SSH depuis n’importe quel terminal en cas de besoin.