MySQLのバイナリログが、ディスクを圧迫していたのです。

レンタルサーバのHDD容量がいつの間にか残り少なくなっていて、そんなにファイルを溜め込んでいる筈は無いのになぁ…なんて思いつつ調べてみると、MySQLが吐き出すバイナリログが30GB近く溜まっていたのです。

しばらく前にMySQLのバージョンを上げたときに、設定がデフォルトに戻ってしまっていたらしい。

ログの在処は、/var/lib/mysql。ここに mysql-bin.000xxxx という、鬼のようなサイズのファイルが幾つも転がっています。直接消しても大丈夫みたいなので、コマンドラインから rm で削除してしまいます。

★【2012.03.04追記】 rm コマンドでバイナリログを削除したら MySQL が立ち上がらなくなった…というときは、コチラの記事 → 『MySQLでバイナリログを削除したら立ち上がらなくなったので直す』をどうぞ。

直接消すのはどうも…というときは、ここここを参考にしながらコマンドラインから作業すればよろし。

で、MySQLの設定ファイル my.cnf を弄って、無駄にログを溜め込まないような設定に変更。このあたりの記事を参考にして、expire_logs_days という変数を設定してやればOK。


ログファイルの場所だとか、my.cnfの場所だとか、いつも忘れてしまうのでメモメモ。

CentOSだったらおそらく、my.cnf は /etc 直下にあります。ログやデータは /var/lib/mysql 。

Macに MacPort を使って MySQLをインストールしているのならば、my.cnfは /etc 直下にあるけれど、こいつを開いてみると「グローバル設定をするときには、このファイルを /opt/local/etc/mysql5/my.cnf にコピーして使え」と書いてある。この /etc/my.cnf を書き換えても設定変更は反映されたけれど。
そして、データディレクトリは /opt/local/var/db/mysql5 。

ubuntuに apt-get で MySQL をインストールしたならば、my.cnf は /etc/mysql にありました。データディレクトリは /var/lib/mysql。

ということで。

カテゴリ: