バイナリログは自動ローテートされるが、
・エラーログ
・クエリログ
・スロークエリログ
は手動でローテートする必要がある。
mysql>FLUSH LOGS;
でOK。
自動でローテートさせたいなら、 /etc/logrotate.d/ に次のファイルを置く。
/var/lib/mysql/mysqld.log /var/lib/mysql/mysql-slow.log { # create 600 mysql mysql notifempty daily rotate 30 missingok compress postrotate # just if mysqld is really running if test -x /usr/bin/mysqladmin && /usr/bin/mysqladmin ping &>/dev/null then /usr/bin/mysqladmin flush-logs fi endscript }
上の例では MySQL のログと slowlog を logrotate しているので、ログファイル名は環境に応じて変更すべし
↑のスクリプトは/usr/local/mysql/share/mysql/mysql-log-rotateがベースになっているっぽい。