MySQLでにはデータの変更などがあった際にバイナリログというログに記録をしているのですが、デフォルトでは自動削除機能がオフとなっているため、長い間MySQLを運用しているとログが肥大化しディス容量を圧迫されていきます。
バイナリログの削除方法はいくつかあるのですが、ここでは自動削除を設定することでバイナリログの削除を行います。
バイナリログの自動削除設定
バイナリログの自動削除は「my.cnf」に「expire_logs_days=◯」と追記することで設定することができます。以下は7日過ぎたら自動削除する設定になります。
$ vi /etc/my.cnf
# default-authentication-plugin=mysql_native_password
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
↓
# default-authentication-plugin=mysql_native_password
expire_logs_days=7
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
MySQLを再起動する
「my.cnf」を編集したらMySQLを再起動してください。
$ systemctl restart mysqld
私の場合は以下のように約1G程度の容量確保をすることができました。
# du /var/lib --max-depth=1 -h | grep mysql
1.8G ./mysql
↓
# du /var/lib --max-depth=1 -h | grep mysql
803M /var/lib/mysql
それではみなさん、自由なWEBライフをお過ごしください!