バイナリログは ファイルで言う/var/lib/mysql/mysql-bin*
で、いわゆるDBの更新ログ
これをもとにリカバリとかできるのだが、今回不必要なDBサーバーにバイナリログを書き出す設定にしてしまったので削除したいというメモ
直接削除するのはダメなの?
rm -rf /var/lib/mysql/mysql-bin*
はちょっと怖い
方法
まずどのくらいバイナリログが貯まっているのか確認するためにshow master logs
MariaDB [(none)]> show master logs; +------------------+------------+ | Log_name | File_size | +------------------+------------+ | mysql-bin.000001 | 356 | | mysql-bin.000002 | 456049525 | | mysql-bin.000003 | 2337 | (略) | mysql-bin.000126 | 788891983 | | mysql-bin.000127 | 327 | +------------------+------------+ 127 rows in set (0.00 sec)
削除 今回は全部消したいので最後のバイナリログのファイルを指定
MariaDB [(none)]> purge master logs to 'mysql-bin.000127'; Query OK, 0 rows affected (2.20 sec)
再度show master logs;
を実行して確認
実行できない場合
MariaDB [(none)]> show master logs; ERROR 1381 (HY000): You are not using binary logging
となった場合はすでにバイナリログの記録が無効になっている。この場合はrge master logsできないので
[mysqld] log-bin=mysql-bin
を追記してMySQLを再起動するしかない
SET GLOBALでもいけるかと思ったが
MariaDB [(none)]> SET GLOBAL sql_log_bin = 1; ERROR 1238 (HY000): Variable 'sql_log_bin' is a SESSION variable
このセッション中のバイナリログしか見えないらしく、できなかった。バイナリログの記録が無効担っている場合はrmで消してもいいのかもしれないが未検証