Voici une astuce pour activer/désactiver les logs de requêtes (general log) de MySQL sans avoir à redémarrer le service.
1. Préparation du serveur
Il va quand même falloir redémarrer le service au moins une fois pour activer un paramètres par défaut : l'emplacement du fichier de log.
Ceci est facultatif mais nous évitera d'avoir à le respécifier à chaque fois.
Pour ce faire, il suffit d'éditer le fichier my.ini (ou my.cnf sous Linux) et d'ajouter/modifier la directive suivante :
general_log_file = E:/MySQL/Logs/query.log
il faut donc logiquement redémarrer le service pour prendre en compte ce paramètre.
2. Activation du log à la volée
Dans une invite de commande MySQL ou tout autre outil capable d'exécuter des requêtes mysql avec un utilisateur ayant des droits d'admin, il faut lancer la commande suivante :
SET GLOBAL general_log = 'ON';
Les logs sont activés et ajoutés au fichier défini ci-dessus.
3. Désactivation des logs
Il suffit de repasser le paramètre à OFF :
SET GLOBAL general_log = 'OFF';
Le fichier de log est alors déverrouillé par MySQL et nous pouvons le manipuler comme nous le souhaitons (déplacement, suppression,...)