web-dev-qa-db-ja.com

Mysql binlogsが存在し、バイナリログが空であることを示す

レプリケーション設定に取り組んでおり、bin-logsをオンにしました。 mysql datadirを新しい場所とbinlogパスに移動しました

My.cnfから

datadir = /vol/data/mysql
log-bin=/vol/data/mysql/mysql-bin
binlog_format=mixed

Mysqldを起動してステータスを確認すると、次のようになります。

mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000315 |      106 |              |                  |
+------------------+----------+--------------+------------------+

/ vol/data/mysqlの内容を確認すると、多くのbinログが表示されますが、具体的には、このファイルが作成されたばかりであることがわかります。

mysql-bin.000313
mysql-bin.000314
mysql-bin.000315
mysql-bin.index

インデックスファイルをテールする場合:

$ Sudo tail mysql-bin.index
/vol/data/mysql/mysql-bin.000313
/vol/data/mysql/mysql-bin.000314
/vol/data/mysql/mysql-bin.000315

Mysqlでは、バイナリログはまったくありません。

mysql> SHOW BINARY LOGS;
Empty set (0.00 sec)

これは、mysqlでバイナリログをパージしても影響がないことを意味します。私はディレクトリとファイルのパーミッションを確認しましたが、すべてmysqlのユーザーとグループに属しています。 mysqlがこれらのバイナリログを表示またはパージできないのはなぜですか?

mysql> PURGE BINARY LOGS BEFORE NOW();
ERROR 1373 (HY000): Target log not found in binlog index
1
Jage

あなたは少し変わったものを試す必要があるかもしれません

service mysql stop

開いた mysql-bin.index in vi

内容をこれに変更

./mysql-bin.000313
./mysql-bin.000314
./mysql-bin.000315

保存する mysql-bin.index

service mysql start

MySQLにログインして実行

SHOW BINARY LOGS;
SHOW MASTER STATUS;

このスタントは私にとって数回働きました。

試してみる !!!

1
RolandoMySQLDBA