web-dev-qa-db-ja.com

スロークエリログファイルの削除

システムの遅いクエリをログに記録していました。これで、最適化するクエリがいくつかあり、グローバルslow_query_log変数を0にリセットします。次に、スロークエリログファイルmysqld-slow.logを削除します。これを行うための標準的な方法は何ですか?

Cent OSを使用していて、他のログファイル(つまり、一般的なログやバイナリログ)を削除したり、影響を与えたりしたくありません。ありがとうございます。

8
Chandan

5.5.3以降、FLUSH LOGSはスローログを閉じて再度開きます。 (古いバージョンでは、FLUSHはスローログに影響を与えませんでした。)

したがって、* nix OSでは、これはサーバーを再起動せずに動作するはずです

  1. rm(削除)またはmvスローログを別の名前に。 (注:名前を変更しても、mysqldは引き続きファイルに書き込みます。)
  2. FLUSH LOGS;。 5.5.3以降、FLUSH SLOW LOGS;を使用して効果を制限できます

http://bugs.mysql.com/bug.php?id=14104 および http://bugs.mysql.com/bug.php?id=60878 を参照してください

私はスローログをオフにしません-来月誰かがいたずらなクエリを追加し、あなたはそれについて知りたいでしょう。

7
Rick James

またはセット

SET GLOBAL slow_query_log = 'OFF';

次に、ファイルをクリアしてから

SET GLOBAL slow_query_log = 'ON';
3
Girish Pinjarla

とても簡単です。スロークエリログファイルが必要な場合は、バックアップを取り、以下を実行してください。

tail -n slow-query.log > slow-query.log

上記のファイルは、スペースをクリアする同じ名前の 'n'行で再作成されます。

1
Girish Pinjarla

どのように私がそれをしたかをお話しましょう。

  1. 停止mysqlサービス
  2. バックアップ/コピー別のディレクトリまたはフォルダーへの既存のスロークエリログ。
  3. 削除/移動ログファイルを別のディレクトリに。
  4. 同じ名前で新しいログファイルを作成します。
  5. 開始mysqlサービス

注:

  1. ログファイルが移動/削除する権利であることを確認してください。
  2. mysqlサービスがアクセスしているログファイルの場合、ファイルを削除できません。

これは私にとってうまくいきました、あなたにも役立つことを願っています。ありがとう。

0
Rathish

AWS RDSサービスを使用している場合は、

>truncate mysql.slow_log;

Error Code: 1044. Access denied for user 'rds_admin'@'%' to database 'mysql'

これを行うRDSの方法は、slow_logテーブルをスローに移動する組み込み関数を呼び出すことです。

CALL mysql.rds_rotate_slow_log;
0