J'enregistrais les requêtes lentes de mon système. Maintenant, j'ai quelques requêtes à optimiser et réinitialiser la variable globale slow_query_log
À 0
. Maintenant, je veux supprimer le fichier journal des requêtes lentes mysqld-slow.log
. quelqu'un peut-il me dire quelle est la manière standard de procéder?
J'utilise Cent OS et je ne souhaite pas supprimer ou affecter d'autres fichiers journaux (c.-à-d. Journal général ou journal binaire) Merci.
Depuis le 5.5.3, FLUSH LOGS
fermera et rouvrira le slowlog. (Dans les anciennes versions, FLUSH
n'avait aucun effet sur le slowlog.)
Donc, sur * nix OS, cela devrait fonctionner sans redémarrer le serveur:
rm
(à supprimer) ou mv
le slowlog à un autre nom. (Remarque: mysqld continuera d'écrire dans le fichier, même si vous avez changé le nom.)FLUSH LOGS;
. Depuis 5.5.3, vous pouvez limiter l'effet via FLUSH SLOW LOGS;
Voir http://bugs.mysql.com/bug.php?id=14104 et http://bugs.mysql.com/bug.php?id=60878
Je ne désactiverais pas le slowlog - le mois prochain, quelqu'un ajoutera une requête coquine et vous voudrez en savoir plus.
ou définir
SET GLOBAL slow_query_log = 'OFF';
puis effacez le fichier puis
SET GLOBAL slow_query_log = 'ON';
C'est très simple. Si vous voulez le fichier journal de requête lente, prenez simplement la sauvegarde et faites ci-dessous.
tail -n slow-query.log > slow-query.log
Le fichier ci-dessus sera recréé avec un nombre 'n' de ligne du même nom qui efface l'espace.
Laissez-moi vous dire comment j'ai fait ça.
Remarque:
Cela a fonctionné pour moi, j'espère que cela vous aidera aussi. Merci.
Si vous utilisez le service AWS RDS, essayez de
>truncate mysql.slow_log;
Error Code: 1044. Access denied for user 'rds_admin'@'%' to database 'mysql'
Pour ce faire, la méthode RDS consiste à appeler la fonction intégrée qui déplace la table slow_log vers slow
CALL mysql.rds_rotate_slow_log;