Comment enregistrer/log toutes les actions mysql, sans redémarrer, en production

Comment enregistrer (logger) toutes les actions mysql, sans restart, en production. Voilà une astuce très pratique.

J’ai trouvé sur stackoverflow cette astuce extrêmement pratique pour voir ce qui se passe en direct sur une BDD mysql.

Attention ! cela dépend de votre version de MySQL, si 5.6+ voir plus loin, si < 5.5 voilà ce qui est possible :

  1. Se connecter en shell sur le client MySql
  2. Faire ces 2 commandes suivies de « entrer »
    mysql > SET GLOBAL general_log = 'ON';
    mysql > SET GLOBAL general_log_file = '/var/log/mysql/tmp-all.log';
  3. Ouvrir sur un autre terminal en parallèle un : tail -f ou un less +F le fichier /var/log/mysql/tmp-all.log

Ne pas oublier de changer le On en OFF une fois les actions finies, car attention à la taille de ce fichier et à la baisse de performance de la BDD.

Pour un Mysql en 5.6+, utilisez cette syntaxe :
SET global log_output = 'FILE';
SET global general_log_file='/Applications/MAMP/logs/mysql_general.log';
SET global general_log = 1;

Bonne lecture.

No Comments

Post a Comment