Dans le monde de l’hébergement, MySQL reste l’un des composants les plus critiques pour alimenter les sites web dynamiques, les boutiques de commerce électronique, les systèmes de gestion de contenu (CMS) et les plateformes SaaS. Que vous gériez un cluster d’hébergement partagé, une infrastructure VPS ou des serveurs dédiés pour des clients professionnels, il est essentiel de contrôler les opérations internes de MySQL.
Un outil souvent négligé mais puissant est la commande FLUSH – une collection d’instructions SQL administratives qui vous permettent de recharger les privilèges, d’effacer les journaux, de réinitialiser les états et d’assurer la cohérence sans redémarrer le serveur.
L’instruction FLUSH est utilisée pour
Vider les caches internes
Recharger les fichiers de configuration (comme les tables de privilèges)
Réinitialiser les informations d’état
Forcer MySQL à écrire les données en mémoire tampon sur le disque
Seuls les utilisateurs disposant du privilège RELOAD (ou d’un privilège supérieur, comme SUPER) peuvent exécuter la plupart des opérations FLUSH.
Recharge les privilèges de l’utilisateur à partir des tables d’attribution de la base de données mysql :
Quand utiliser :
Après avoir modifié manuellement mysql.user ou d’autres tables d’octroi.
Lorsque vous modifiez l’accès d’un utilisateur à l’aide d’instructions UPDATE directes au lieu de GRANT.
Ferme toutes les tables ouvertes et force leur réouverture. Utile pour la maintenance du système de fichiers ou les sauvegardes.
Il est également possible d’effacer des tables spécifiques :
Quand l’utiliser ?
Avant d’effectuer des sauvegardes avec des outils externes (par exemple, mysqldump –single-transaction).
Après des écritures à grande échelle qui peuvent surcharger le cache de la table.
Supprime tous les résultats des requêtes du cache des requêtes (s’il est activé) :
Remarque : le cache de requête est déprécié et supprimé dans MySQL 8.0.
Ferme et rouvre tous les fichiers journaux (journal général, journal des erreurs, journal binaire, journal des relais).
Ou efface un type de fichier spécifique :
FLUSH BINARY LOGS;
FLUSH ERROR LOGS;
FLUSH ENGINE LOGS;
FLUSH SLOW LOGS;
Quand utiliser :
Après la rotation des journaux
Lorsque les journaux sont déplacés ou archivés
Pour réinitialiser les journaux à des fins de débogage ou de conformité
Réinitialise le cache des hôtes dont les connexions clients ont échoué.
Quand l’utiliser ?
Lors de la réception de l’erreur suivante : “L’hôte ‘xxx’ est bloqué en raison de nombreuses erreurs de connexion :
Host 'xxx' is blocked because of many connection errors
Remet la plupart des variables d’état à zéro (n’affecte pas les compteurs globaux comme Uptime).
Quand l’utiliser :
Avant un benchmarking ou un test de performance.
Pour obtenir des métriques propres avec SHOW STATUS.
Vide et verrouille toutes les tables, empêchant l’écriture par d’autres sessions.
À utiliser :
Pour des sauvegardes instantanées cohérentes (par exemple, avec LVM ou des outils de copie de fichiers).
Important : déverrouillez toujours manuellement avec UNLOCK TABLES ;
Recharge les fichiers de clés DES utilisés dans les anciens DES_ENCRYPT()/DES_DECRYPT() (legacy).
Réinitialise les compteurs de limites de ressources par utilisateur (comme MAX_QUERIES_PER_HOUR).
A utiliser :
Réinitialisation en milieu de cycle pour les utilisateurs dont les ressources sont limitées.
FLUSH QUERY CACHE est supprimée dans MySQL 8.0.
FLUSH DES_KEY_FILE est obsolète.
Considérez les nouvelles alternatives de MySQL 8.0 comme RESET PERSIST.
La plupart des opérations FLUSH nécessitent le privilège
Le privilègeRELOAD
SUPER ou SYSTEM_VARIABLES_ADMIN (pour les opérations sensibles dans MySQL 8 )
Exemple :
La famille de commandes FLUSH est essentielle pour le contrôle administratif dans MySQL. Que vous gériez des privilèges, des journaux ou des états de cache, comprendre comment et quand utiliser FLUSH permet de maintenir des performances et une fiabilité optimales du serveur sans nécessiter de redémarrage. Utilisez-la à bon escient avec les privilèges appropriés, en particulier dans les environnements de production.