QA@IT

[mysql] windows環境でlogrotate使用ができますか。

5048 PV

mysqlの機能の中でログを記録する機能がありますけど、ログの容量が多くなりまして
logrotateを使って日付別に分けたいです。

logrotateをlinux環境ではなく、windows環境で使えますか。

使えるなら方法を教えて頂けますか。

回答

ELF なバイナリなので Windows では動作しません。

$ file /usr/sbin/logrotate
/usr/sbin/logrotate: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped

また、仮に logrotate が動いたとしても mysql のログは mysqld によって開きっぱなしになっているため、Windows だとログのリネームに失敗します。

編集 履歴 (0)
  • cygwinというwindowsをlinuxみたいに使えるようにするプログラムがありますけれど、
    これでもできませんみたいですね。。。
    -
  • うーん、cygwin や mingw で無理やり Windows で動くバイナリを作ることは不可能ではないと思いますが、ログが開きっぱなしになる問題はどうしようもありません。 -
  • ここ http://dev.mysql.com/doc/refman/5.1/ja/log-file-maintenance.html の下の方に一般ログとスロークエリログについての記述があります。自前でバッチを作ってタスクスケジューラーとかで定期実行させればなんとかなるかもしれません。 -
  • エラーログについては、少し昔の MySQL なら flush-logs でエラーログが .old をサフィックスを付けてリネームされていたのでなんとかなりそうでしたが。。。 -
  • 参考 → http://d.hatena.ne.jp/do_aki/20120221/1329820114 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。