FreeBSD/MySQL/Loglotate の変更点
*''&size(15){MySQLのログローテート};'' [#i65bc49d]
[[dokuwiki.fl8.jp転載済>http://dokuwiki.fl8.jp/doku.php/02_freebsd/04_database/01_mysql/mysql_logrotate]]
MySQLのログってnewsyslogなんかに記述しても上手くローテートしてくれません。~
新しいログファイルの使用を MySQL に強制するには、mysqladmin flush-logs を使用する必要があります。~
Linuxのrpmなんかだと、ローテート用のプログラムが用意されてるみたいなんですが、~
FreeBSDはそんなのないので、簡単なシェルを書いてCronで実行するような処理が必要になります。~
**''MySQLのログをローテート'' [#p57a90a6]
▼/etc/newsyslog.confに記述。~
今回は一週間分、圧縮せずにローテートするよう記述。~
# vi /etc/newsyslog.conf
-----------------追加--------------------
/var/log/mysql/mysql.log 660 7 * @T00 B
-----------------追加--------------------
~
▼/etc/crontabにパーミッション変更とMySQLのflush-logsを実行。~
# vi /etc/crontab
01 0 * * * root /usr/sbin/chown mysql /var/log/mysql/mysql.log ; /usr/local/bin
/mysqladmin -u root -p[MySQLのrootパスワード] flush-logs
&color(red){※root -p[MySQLのrootパスワード]の個所は-pの後にスペースは入れないようにする。};