Mysqlcheck

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Vérification / réparation / optimisation de tables MySQL
Fonctionne à chaud, serveur en fonctionnement (contrairement à myisamchk)
Voir aussi Mysql · Mysqladmin · Maintenance

mysqlcheck est l'outil client de vérification et de maintenance des tables MySQL/MariaDB. Il enveloppe les instructions SQL CHECK TABLE, REPAIR TABLE, ANALYZE TABLE et OPTIMIZE TABLE, avec l'avantage de pouvoir s'exécuter pendant que le serveur tourne (contrairement à l'ancien myisamchk, qui nécessite un accès direct aux fichiers hors service).

Les commandes mysqlrepair, mysqlanalyze et mysqloptimize sont en réalité des liens symboliques vers mysqlcheck, invoqué avec l'option correspondante activée par défaut.

Vérifier toutes les bases

mysqlcheck --all-databases -u USERNAME -p -r

(-r / --repair tente une réparation automatique des tables trouvées corrompues.)

Options principales

Option Effet
-c, --check Vérifie les tables (comportement par défaut si aucune option n'est donnée)
-r, --repair Tente de réparer les tables corrompues
-a, --analyze Recalcule les statistiques de distribution des clés (aide l'optimiseur de requêtes)
-o, --optimize Défragmente/réorganise les tables (récupère l'espace disque perdu)
--all-databases Traite toutes les bases du serveur
--databases db1 db2 Traite une liste de bases spécifiques

Exemples :

# Vérifier une base précise
mysqlcheck -u root -p --check ma_base
# Optimiser toutes les tables d'une base
mysqlcheck -u root -p --optimize ma_base
# Recalculer les statistiques sur plusieurs bases
mysqlcheck -u root -p --analyze --databases base1 base2

Limites selon le moteur de stockage

REPAIR TABLE ne fonctionne pleinement que sur des moteurs comme MyISAM ou Aria. Pour une table InnoDB corrompue, cette commande n'a généralement aucun effet utile : les mécanismes de récupération appropriés passent par innodb_force_recovery (démarrage en mode dégradé pour extraire les données) ou par une restauration depuis une sauvegarde (Mysqldump). ANALYZE TABLE et OPTIMIZE TABLE restent en revanche utiles sur InnoDB (la commande OPTIMIZE TABLE y effectue en réalité un ALTER TABLE qui reconstruit la table).

Voir aussi

  • Mysqladmin — statut et administration générale du serveur
  • Mysqldump — sauvegarde/restauration, seule vraie solution de récupération pour InnoDB en cas de corruption sévère