MySQLが吐く何とか-bin.001とかを消して今後悩まされないで済みたい。

その日は突然やって来た。エラーログ見るとエラー吐きまくり。フロントずっこけまくり。

顔面蒼白になりましたが、原因は速攻で判明し/var/のDisk使用量が100%ですと。なんと。

とりあえず何か退避出来るデータはないかと見てみるとmysqlのデータディレクトリに『何とか-bin.001〜009』みたいなファイルがてんこもりもり。

しかも中には900M超えのでっかいやつがありました。

出来る事ならこの人にいなくなって欲しいと思ったんですが恥ずかしながら何のファイルかわかりませんでした。

で、調べた結果↓との事。

http://dev.mysql.com/doc/refman/4.1/ja/binary-log.html

バイナリログには、バックアップ後の更新がすべて記録されます。バイナリログの主な目的は、リストア時に、データベースに対して可能な限りバックアップ後の更新を実行できるようにすることです。

バイナリログは、マスタからスレーブにレプリケーションを行うときにも使用します。

との事、かつmy.cnfのlog-binという箇所をコメントアウトすれば二度とログは吐かれないそうな。

レプリケーションしてないしバックアップはmysqldumpでとってるし。。。いらない?けど大丈夫?けどどっちにしろずっこけまくり。。やっぱいらない。そうだ!イランイラン!!

と多少の迷いはありましたが結果的に自分の中でGOサインが出ましたので、まず手順準備。

apache stop

mysql stop

何とか-bin.00[1-9]ファイルを削除。

my.confを書き換え(log-binという箇所をコメントアウト)

mysql start

apache start

といった手順で行おうと計画しました。

apache stop成功。mysql stop...失敗....orz
エラーが「pidファイルがおかしくない?!」との事。
で、わたくしはフロントが止まっていて若干焦っていたのも有り「おかしくない!死ね!」と豪快に一旦mysqlのプロセスをkillしました。

でmy.cnfを書き換えて、binログを消そうかと、後で知ったんですがMySQLにはbinログに関する操作を行えるRESETというコマンドがあるんだそうな。

でそれを知らない私めはrm!rm!rm!と男気溢るるコマンドを打ちまくってbinログの討伐に成功しました。(最近モンハン2にはまってるんです。)

mysql start→apache startと無事実行してフロントが復活しました。多分オッケ〜。

という訳で問題解決と相成りました。


ちなみにMy三国志の話でした。


今回の教訓

結果オーライにも程が有る。

Disk容量はこまめに見ましょう。