システムの遅いクエリをログに記録していました。これで、最適化するクエリがいくつかあり、グローバルslow_query_log
変数を0
にリセットします。次に、スロークエリログファイルmysqld-slow.log
を削除します。これを行うための標準的な方法は何ですか?
Cent OSを使用していて、他のログファイル(つまり、一般的なログやバイナリログ)を削除したり、影響を与えたりしたくありません。ありがとうございます。
5.5.3以降、FLUSH LOGS
はスローログを閉じて再度開きます。 (古いバージョンでは、FLUSH
はスローログに影響を与えませんでした。)
したがって、* nix OSでは、これはサーバーを再起動せずに動作するはずです:
rm
(削除)またはmv
スローログを別の名前に。 (注:名前を変更しても、mysqldは引き続きファイルに書き込みます。)FLUSH LOGS;
。 5.5.3以降、FLUSH SLOW LOGS;
を使用して効果を制限できますhttp://bugs.mysql.com/bug.php?id=14104 および http://bugs.mysql.com/bug.php?id=60878 を参照してください
私はスローログをオフにしません-来月誰かがいたずらなクエリを追加し、あなたはそれについて知りたいでしょう。
またはセット
SET GLOBAL slow_query_log = 'OFF';
次に、ファイルをクリアしてから
SET GLOBAL slow_query_log = 'ON';
とても簡単です。スロークエリログファイルが必要な場合は、バックアップを取り、以下を実行してください。
tail -n slow-query.log > slow-query.log
上記のファイルは、スペースをクリアする同じ名前の 'n'行で再作成されます。
どのように私がそれをしたかをお話しましょう。
注:
これは私にとってうまくいきました、あなたにも役立つことを願っています。ありがとう。
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;