MySQLのバイナリログが増殖していますた。

先日上流を変更したこのサーバ。移行直後の様子がなんだかおかしい。

WordPress先生が「データベースに接続できません」とかおっしゃるし。

ps ax | grep mysql

すると、mysqldはご存命の様子。とりあえず再起動させようと

/usr/local/etc/rc.d/mysql-server restart

するとmysqldが多重起動する始末。

/var/log/messagesを見てみると。

Jan  6 20:19:49 dns kernel: pid 1146 (mysqld), uid 88 inumber 94474 on /var: filesystem full

うへ~。”/var”が溢れてますたorz。このタイミングで何故に(汗)。

“/var/db/mysql”の下に”ドメイン.err”のようなファイル名でログファイルがあるので参照したところ、

110106 19:49:32 [ERROR] /usr/local/libexec/mysqld: Disk is full writing './mysql-bin.000019' (Errcode: 28). Waiting for someone to free space... (Expect up to 60 secs delay for server to continue after freeing disk space)

バイナリログが書き込めないよ、ボケ!とか仰っています。

何がそんなに容量食いつぶしているのかと思ったらやっぱりバイナリログでして、”/var/db/mysql”の中に”mysql-bin.xxxxxx”のようなファイルが一杯。そのうち幾つかは700Mオーバー。

バイナリログってmysqlをレプリケーションする時に必要になるファイルなのだそうで。

そんなのいらんがなとか思ったところでおいらの設定が悪い訳でして、やさぐれるわけにも行かずに知らん振りしてさくっと消す事に(汗)。

バイナリログ自体はインデックスを持っているので、mysqlコマンド経由で消します。

mysqlコマンドでサーバに接続したら、

show binary logs;

でバイナリログの一覧を参照。いらないログを確認して

purge master logs to 'mysql-bin.xxxxxx';

のように入力して消します。

バイナリログ出力させないようにするには、/usr/local/etc/my.cnfを編集して

# Replication Master Server (default)
# binary logging is required for replication
#log-bin=mysql-bin

# binary logging format - mixed recommended
#binlog_format=mixed

のように2箇所をコメントアウトした後、mysqlを再起動させます。

テンプレートからmy.cnfを作るとバイナリログの出力は標準のようなので、気をつけないといけないですね。

[adrotate banner=”16″]

コメント

  1. […] レプリケーションが不必要な場合は「MySQLのバイナリログが増殖していますた。」も参照。 […]

タイトルとURLをコピーしました