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
ユーザー側から バッチ処理などで バイナリログを削除を実行すると下記のエラーが出ます
> 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' WHERE user='ユーザー';