勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

MySQLのバイナリログ(/var/lib/mysql/binlog)を適切に削除する方法

   2024/05/23  MySQL データベース

レンタルしているVPS内のファイルを整理していると「/var/lib/mysql/binlog.xxxxxx」というファイルがあり、1ファイルあたり1GB近くと容量を圧迫しているので出来ることなら削除したかった。調べてみるとMySQLのバイナリログらしく、rmコマンド等で削除するとまずいらしい。以下に適切な対応方法のメモ。

 

対応方法

SSH接続して以下を実行。日時部分は適宜変更する。

#MySQLにrootで接続
mysql -u root -p

#以下SQL文を実行
mysql> PURGE MASTER LOGS BEFORE '2022-12-31 23:59:59';

上記の場合だと「2022-12-31 23:59:59」以前のログが削除される。

 

リファレンス

https://dev.mysql.com/doc/refman/8.0/ja/purge-binary-logs.html

 

注意点

MySQL8.0.3以降の場合、ログ設定の「expire_logs_days」は非推奨のためか設定及び再起動を行うとMySQLが立ち上がらなかった。

代わりに設定するのであれば「binlog_expire_logs_seconds」を用いるのが良さそう。ただ、こちらは「expire_logs_days」と違ってデフォルトで30日設定になるようなので特に変更する必要は無さそう。

 - MySQL データベース

  関連記事

htmlspecialcharsを通してMySQLに格納したものを元に戻して出力
htmlspecialcharsを通してMySQLに格納したものを元に戻して出力

MySQLにHTMLタグを入れたくない場合にhtmlspecialcharsを使 ...

MySQLで一連の処理を関数のように実行できるストアドプロシージャの設定と利用方法
MySQLで一連の処理を関数のように実行できるストアドプロシージャの設定と利用方法

MySQL関連のサイトを見ていた際にストアドプロシージャが云々というページがあっ ...

MySQLにてdatetime型のカラムを整形し「年月日のみ形式」または「秒のみ省いた形式」で表示する方法
MySQLにてdatetime型のカラムを整形し「年月日のみ形式」または「秒のみ省いた形式」で表示する方法

MySQLにてdatetime型のカラムに登録日時等を格納しており、管理画面側で ...

MySQLでIPを整数値としてカラムに格納する
MySQLでIPを整数値としてカラムに格納する

MySQLでIPを整数値としてカラムに格納しているケースがあった。今までIPが必 ...

PLESK利用時にMySQLでrootのパスワードが分からない場合の対応方法
PLESK利用時にMySQLでrootのパスワードが分からない場合の対応方法

pleskで管理しているサーバがあり、mysqlのrootのパスワードが分からな ...