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.

Pas de commentaire

Publier un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Activer les notifications Super merci ! Non merci !
Which Notifications would you like to receive?