web-dev-qa-db-fra.com

Supprimer le fichier journal des requêtes lentes

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.

8
Chandan

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:

  1. 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.)
  2. 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.

7
Rick James

ou définir

SET GLOBAL slow_query_log = 'OFF';

puis effacez le fichier puis

SET GLOBAL slow_query_log = 'ON';
3
Girish Pinjarla

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.

1
Girish Pinjarla

Laissez-moi vous dire comment j'ai fait ça.

  1. Stop le service mysql.
  2. Sauvegarde/Copie le journal des requêtes lentes existant dans un autre répertoire ou dossier.
  3. Supprimer/Déplacer le fichier journal vers un autre répertoire.
  4. Créez un nouveau fichier journal avec le même nom.
  5. Démarrerle service mysql.

Remarque:

  1. Assurez-vous que vous avez droits de déplacement/suppression le fichier journal.
  2. Vous ne pouvez pas supprimer le fichier lorsque le service mysql accède le fichier journal.

Cela a fonctionné pour moi, j'espère que cela vous aidera aussi. Merci.

0
Rathish

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;
0
Arunas Bartisius