Configurer les log de mysql sous linux

Pour connaitre les performances de votre base de données Mysql, il vous faut connaitres ses logs. Il y a trois fichiers log qui peuvent être généré avec Mysql:

Error log : le log des erreurs de mysql, utile souvent en développement

Query log : le log de toutes les requêtes SQL qui sont exécutée, utile lorsque vous êtes en production, pour pouvoir détecter où se produit un événement à problème.

Slow query log : le plus intéressant en situation normale, dans ce fichier sont loggées les requêtes non optimisées. C’est là que vous découvrirez sans doute qu’il faudra un index sur une colonne pour qu’une jointure se fasse plus rapidement.

Voir aussi : Retrouver le dernier id de la ligne insérée dans Mysql

Quel fichier éditer pour pouvoir logger ces informations? par défaut l’installation de Mysql ne configure pas ces fichiers de log.

Nous allons donc éditer le fichier my.cnf sous Linux.

Sous une distribution Debian, le fichier se trouve dans etc.

Pour le query log (general query log) :

Pour mysql version 5.1.29 et plus :

general_log_file = /path/to/query.log
general_log      = 1  # ne marche pas si ON au lieu de 1

Généralement vous pouvez mettre le query.log à /var/log/mysql/query.log

Pour le slow query log :

log_slow_queries = 1
slow_query_log_file = /path/to/slow-query-query.log

long_query_time = 2

log-queries-not-using-indexes = 1

Attention, ci-dessus log-queries-not-using-indexes va faire en sorte que les requêtes n’utilisant pas d’index seront loggées, par conséquent vous aurez des requêtes prenant moins de 2 secondes présentes dans le fichier, ce n’est peut être pas ce que vous recherchez, dans ce cas mettez à 0 cette valeur.

 

Retour en haut