Afficher les logs mysql en temps réel de toutes les requêtes SQL

Les logs sont l’arme absolue pour comprendre ce qui se passe. Mais, des fois, les requêtes sont dynamiques dans le code. Donc pour comprendre ce qui se passe voilà une astuce pour afficher les logs mysql en temps réel de toutes les requêtes SQL.

Je ne sais pas si vous avez été face au problème, mais si vous l’avez été, c’est rageant de ne pas avoir la totalité des actions loguées sur mysql. En fait, pour ce faire, il suffit d’activer l’option “general_log” afin d’avoir un log créé, bien verbeux comme on les aime dans ces cas-là.

Pour ce faire, le plus simple est de vous connecter au client mysql, et de saisir :

mysql> SHOW VARIABLES LIKE "general_log%";

Vous devriez avoir affiché 2 lignes, une avec le “general_log” qui peut être “ON” ou “OFF”. L’autre sera l’option “general_log_file », avec le chemin du fichier qui est configuré pour recevoir les logs.

Vous pouvez activer ou désactiver en utilisant “ON” ou “OFF” :

SET GLOBAL general_log = 'ON';

Une fois fait, le plus simple est de faire les différentes actions nécessaires, et de couper les log immédiatement après. Vous n’aurez plus qu’à analyser le résultat, avec toutes les requêtes visibles.

Attention : le log est extrêmement verbeux, et donc ne pas l’activer trop longtemps ou n’oubliez pas de le désactiver, sous peine de remplir votre disque à une allure effrénée si beaucoup de requêtes sont faites en permanences sur le serveur.

Bon débug !

5.00 avg. rating (95% score) - 3 votes