MySQL binlog バイナリログ削除

Pocket

MySQL は binlogという バイナリログを ファイルで 貯めている

わたしの macOS 環境では、 「binlog.000***」というファイルが

/usr/local/var/mysql/ に貯まる。

私の MacBookは、 この バイナリログ が ストレージ を占領してしまった。

ログなので rmコマンドで ログファイル を削除してみたが

下記のように MySQL 起動時に エラーが出た

> mysql.server start
Starting MySQL
.. ERROR! The server quit without updating PID file (/usr/local/var/mysql/mohmac.local.pid).

バイナリログ は消してはいけないらしい。

mysql 接続後、 下記の SQLコマンドで ログ一覧 が表示される。

show master logs;

上記で出てきたリストの 名前を 指定して 下記 SQL コマンドを実行する。

purge master logs to 'binlog.000220';

「binlog.000220」を指定しているが 環境によって値は違うので注意してください。

「binlog.000220」の場合、 220は残るが それより 連番数値の小さいログは削除されます。

purge master logs to

※ バイナリログ の貯まる ファイル場所は 環境で異なるようです。

ユーザー権限から バイナリログを Purge

ユーザー側から バッチ処理などで バイナリログを削除を実行すると下記のエラーが出ます

> show master logs;
ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s) for this operation

userの Super_privが 「N」になっているので 「Y」に変更し再起動すれば

Purge master log コマンド実行できました。

UPDATE mysql.user SET Super_priv='Y'
UPDATE mysql.user SET Super_priv='Y' WHERE user='ユーザー';

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED