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の後にスペースは入れないようにする。};