Mysqlcheck
| 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