Vérifier l'intégrité d'une base de données MySQL
Par xarli le samedi, juillet 24 2004, 00:07 - Trucs et astuces - Lien permanent
Il peut être utile de vérifier l'état d'une base MySQL, après un crash complet de la machine par exemple, sans arrêt propre du service ou même synchronisation des systèmes de fichiers par flush des journaux, auquel cas des tables peuvent être corrompues, et le service se lancer normalement, mais ne focntionner au final qu'à moitié. Une commande fournie avec les clients MySQL sert justement à réparer, optimiser, et surtout détecter une incohérence ou un problème au niveau d'une des tables de la base de données. Ainsi, la commande suivante va chercher des incohérence sur toutes les tables, et automatiquement tenter de réparer les éventuelles erreurs :
22:03 root@iguzki ~# mysqlcheck --all-databases --auto-repair --verbose -p
Attention, il faut bien entendu rentrer son mot de passe.
Il est aussi possible d'intégrer cette commande au script de démarrage du démon MySQL, ce qui permet de vérifier automatiquement à chaque lancement l'intégrité de la base de données.
A noter que, comme d'habitude, cette astuce est disponible parmis d'autres, dans le document trucs et astuces [FR], sur contrib.xarli.net [FR].
Voilà ce que cela donne chez moi :
23:02 root@kartxila ~# mysqlcheck --all-databases --auto-repair --verbose -p Enter password: dotclear.dc_categorie OK dotclear.dc_comment OK dotclear.dc_log OK dotclear.dc_ping OK dotclear.dc_post OK dotclear.dc_user OK jabberd2.active OK jabberd2.authreg OK jabberd2.disco-items OK jabberd2.logout OK jabberd2.motd-message OK jabberd2.motd-times OK jabberd2.privacy-default OK jabberd2.privacy-items OK jabberd2.private OK jabberd2.queue OK jabberd2.roster-groups OK jabberd2.roster-items OK jabberd2.vacation-settings OK jabberd2.vcard OK mysql.columns_priv OK mysql.db OK mysql.func OK mysql.host OK mysql.tables_priv OK mysql.user OK squirrelmail.address OK squirrelmail.userprefs OK sympa.subscriber_table OK sympa.user_table OK vpopmail.dir_control OK vpopmail.lastauth OK vpopmail.limits OK vpopmail.precipitation_fr OK vpopmail.relay OK vpopmail.test_lan OK vpopmail.valias OK vpopmail.xarli_net OK 23:02 root@kartxila ~#