web-dev-qa-db-ja.com

2週間より古いmysqlログビンを自動的に削除します

手動で書く必要があります

purge binary logs bin to "mysql-bin.somenumbers" ;

たまに、binlogがWebサーバーで使用するスペースを減らす必要があります。 2週間ごとにバイナリログビンを自動的にパージすることは可能ですか?おそらくcrontabでbashスクリプトを呼び出していますか?

MySQL 5.5で実行していますCentOS 6.5

1
Zhenyu

私はうれしいです あなたはあなた自身の答えを見つけました

これをmy.cnfに追加できることがわかったと思います

[mysqld]
expire_logs_days = 14

Mysqlを再起動する必要はありません。 root@localhostとしてログインし、これを実行します。

mysql> SET GLOBAL expire_logs_days = 14;

自動回転をすぐにトリガーするには、

mysql> FLUSH LOGS;

2週間以上前のmysqlコンソールからバイナリログをザッピングする場合は、 PURGE BINARY LOGS BEFORE 構文を使用します。たとえば、今日の日付から2週間前の深夜に提供するクエリは次のとおりです。

SELECT DATE(NOW() - INTERVAL 2 WEEK) + INTERVAL 0 SECOND;

そのクエリを PURGE BINARY LOGS BEFORE に適用するだけです。

PURGE BINARY LOGS BEFORE (DATE(NOW() - INTERVAL 2 WEEK) + INTERVAL 0 SECOND);
2
RolandoMySQLDBA