バイナリログは自動ローテートされるが、
・エラーログ
・クエリログ
・スロークエリログ
は手動でローテートする必要がある。
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がベースになっているっぽい。