MySQLでにはデータの変更などがあった際にバイナリログというログに記録をしているのですが、デフォルトでは1ファイル1GBとなっているため「MySQLのバイナリログを自動削除設定を使って削除する」で自動削除を有効にしてもログが1GB未満の場合はファイルがローテーションされずログが削除されません。
今回はログファイルの上限を変更することで1GB未満でもローテションされるように上限サイズの変更を行います。
現在の上限サイズを確認
まずは、現在の上限サイズの設定がいくつになっているかを確認しましょう。確認はMySQLにログインしてSHOWコマンドを利用して確認することができます。以下では1GB(1073741824)であることが確認できます。
$ mysql -u root -p
Enter password:
mysql> SHOW VARIABLES like 'max_binlog_size';
+-----------------+------------+
| Variable_name | Value |
+-----------------+------------+
| max_binlog_size | 1073741824 |
+-----------------+------------+
1 row in set (0.06 sec)
設定を変更する
それでは、現在の値を確認できたので設定を変更しましょう。設定は「my.cnf」ファイルを編集するか、SET文で行うことができます。今回は再起動が不要なSET文で1GBから200MBに変更します。
// 200MBに変更
mysql> SET GLOBAL max_binlog_size=209715200;
Query OK, 0 rows affected (0.00 sec)
// 反映確認
mysql> SHOW VARIABLES like 'max_binlog_size';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| max_binlog_size | 209715200 |
+-----------------+-----------+
1 row in set (0.00 sec)
なお、上限サイズの変更をしても自動削除を有効にしないとログは溜まってしまうので「MySQLのバイナリログを自動削除設定を使って削除する」が未設定の人はこちらも参考にして自動削除を有効にしてみてください。
それではみなさん、自由なWEBライフをお過ごしください!