Error number: MY-010840; Symbol: ER_BINLOG_PURGE_LOGS_CANT_SYNC_INDEX_FILE; SQLSTATE: HY000
Message: MYSQL_BIN_LOG::purge_logs failed to sync the index file.
错误说明: MY-010840,ER_BINLOG_PURGE_LOGS_CANT_SYNC_INDEX_FILE,SQLSTATE:HY000 是MySQL服务器使用了 binlog_do_db 和 binlog_ignore_db 两种过滤模式,执行命令时出现的一个错误,它指示了在清理 binlog 日志时,无法从 binlog index 文件中正确同步信息。
解决方法:要解决 MY-010840,ER_BINLOG_PURGE_LOGS_CANT_SYNC_INDEX_FILE,SQLSTATE:HY000,可以采用以下几种方法:
1. 关闭binlog_do_db和binlog_ignore_db过滤模式,使用binlog_format = ROW 模式。
2. 使用mysqlbinlog的–skip-gtids选项将所有gtids从binlog中跳过。
3. 使用mysqlbinlog的–skip-sql-errors选项,将binlog中的错误忽略掉,并继续复制binlog到slave。
4. 使用mysqlbinlog的–base64-output选项,将SQL语句的编码从base64转换为纯文本,并写入binlog,以便slave可以正确识别和执行SQL语句。
5. 通过编辑binlog index文件,手动修复binlog index文件。
6. 可以使用 mysqldump 将master上的所有数据备份到slave上,然后重新进行复制。