6 votes

Le journal des requêtes lentes de MySQL est activé mais ne consigne rien.

En cours d'exécution :
Ubuntu Server 10.04
Mysql 5.1.41

J'ai ce qui suit dans /etc/mysql/my.cnf

slow_query_log = 1
slow_query_log_file = /var/log/mysqld/log-slow-queries.log
long_query_time = 1

le fichier journal doit être accessible en écriture

drwxrwxrwx  2 mysql mysql    4096 2010-10-20 13:41 mysqld
-rwxrwxrwx  1 mysql mysql    0    2010-10-20 13:41 log-slow-queries.log

Rien n'apparaît dans le journal ou dans la table mysql.slow_log. On dirait que c'est activé

mysql> show variables like '%SLOW%';
+---------------------+--------------------------------------+
| Variable_name       | Value                                |
+---------------------+--------------------------------------+
| log_slow_queries    | ON                                   |
| slow_launch_time    | 2                                    |
| slow_query_log      | ON                                   |
| slow_query_log_file | /var/log/mysqld/log-slow-queries.log |
+---------------------+--------------------------------------+
4 lignes dans l'ensemble (0,00 sec)

Cela signifie-t-il que je n'ai pas de requêtes lentes ? J'ai essayé d'exécuter select sleep(3); mais cela n'apparaît pas.

Existe-t-il une requête que je peux exécuter qui apparaîtra dans le journal si tout est configuré correctement ?

0voto

user2051018 Points 1

J'ai rencontré un problème similaire récemment - MySQL 5.6 sur RDS. Après avoir creusé la configuration pendant un certain temps pour m'assurer qu'elle allait au bon endroit, j'ai remarqué l'erreur suivante dans les journaux d'erreurs:

23780 [ERREUR] Impossible d'ouvrir /rdsdbdata/log/slowquery/mysql-slowquery.log pour l'enregistrement (erreur 2). Désactivation de l'enregistrement pour toute la durée du processus du serveur MySQL. Pour le réactiver : corrigez la cause, arrêtez le serveur MySQL et redémarrez-le.

Donc, si rien n'apparaît, assurez-vous que MySQL est capable d'écrire dans le journal lent, et n'a pas rencontré d'erreur qui l'aurait conduit à désactiver complètement l'enregistrement.

0voto

FantomX1 Points 101

Mon expérience est telle que vous devriez être assez clair que le fichier est accessible, dans mon cas je devais non seulement changer le propriétaire en mysql:mysql, mais le fichier devait également être sous le répertoire /tmp (oui, vous avez bien entendu, le répertoire /tmp en raison de la sécurité linux /etc/init.d/apparmor), chmod seul 0777 n'aiderait pas. De plus, il n'était pas suffisant de le faire sans redémarrer le serveur mysql. Le changement était toujours corrigé juste après le redémarrage, peu importe que les privilèges du fichier soient modifiés immédiatement.

Vous pouvez vérifier l'origine de certains paramètres avec cette requête

SELECT t1.*, VARIABLE_VALUE FROM performance_schema.variables_info t1 JOIN performance_schema.global_variables t2 ON t2.VARIABLE_NAME = t1.VARIABLE_NAME WHERE t1.VARIABLE_NAME LIKE 'slow_query_log';

aux côtés de votre propre show variables like '%SLOW%';

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X