目録データベースを使って統計作業を実施しようとするのですが、なぜかSQLが動かないの.
取り敢えず、ps -ax してみるとビックリ.
/usr/local/bin/mysql -u -root -password xxxxx
のプロセスが100以上動いているのよ.
cron で実行させている MySQL のプロセスが今回動かしたもの同様に、なんともならないまま生き続けているのです.
害の無いものなので、このプロセスを全部 kill します.
これで MySQL に変な負担はかかっていない筈なのよ.
で、SQL を実行しようとしても...やっぱりダメなの.
該当の table が壊れていると考えてみました.
で、テーブルを drop してバックアップから復元しようと試みるのですが、これも出来ない.
思いつきで df してみるとディスクが一杯だ!!
このため MySQL でのテーブル操作ができなくなり、変なプロセスがにっちもさっちもいかなくなったままだったようです.
じゃぁ、ディスクを圧迫しているのはなんなんだ?
調べてみると /usr/home/mysql に mysql-bin.XXXXXX が無数に出来ているの.
なんだこれは?
ぐーぐる先生にお窺いしてみると答えが出てきました.
こいつらはレプリケーションファイルと言うデータベースの複製を作る時に使うものらしいの.
うちの環境では不要と判断したので次の SQL で削除.
PURGE MASTER LOGS BEFORE now();
これで、/usr/home/mysql の mysql-bin.XXXXXX は、最新のものを残して消えてくれました.
今後は、このレプリケーションファイルでディスクがあふれたら困るので、レプリケーションファイルを作らない設定にしたいのです.
で、設定ファイル /usr/local/etc/my.cnf を開き、[mysqld] セクションの「log-bin=mysql-bin」をコメントアウトしてみます.
ところが、↑これ↑をやったら mysqld が起動しない!!
再度ググってみる.
「log-bin=mysql-bin」「binlog_format=mixed」
の2箇所をコメントアウトしないといけないのです.
これで再起動.
大丈夫かな?