MySQL : logger les requêtes SQL

14 06 2012

Sur MySQL il n’existe pas d’outil de profilage comme SQL Server Profiler sur le SGBG homonyme.

Mais pas contre on peut logger toutes les requêtes SQL reçues par le serveur dans un fichier. Pour cela c’est très simple, il suffit de configurer les variables general_log et general_log_file.

Voici comment afficher ces 2 variables pour connaître leur valeur actuelle :

SHOW VARIABLES LIKE "general_log%";

Et voilà comment modifier leur valeur (par exemple) :

SET @@global.general_log = 'ON';
SET @@global.general_log_file = 'C:\\mysql.log';

N.B. Pensez à échapper les antislash avec un 2éme antislash dans le chemin du fichier.

La modification ne sera effective que pour la session actuelle. Si vous redémarrez le serveur MySQL, la valeur initiale de ces 2 variables sera restaurée. Si vous voulez conserver ces paramètres de façon permanente, il faut modifier votre fichier de configuration my.ini.