MySQL Error number: MY-010421; Symbol: ER_RPL_FAILED_TO_RESET_STATE_IN_SLAVE_INFO_REPOSITORY; SQLSTATE: HY000 报错 故障修复 远程处理
文档解释
Error number: MY-010421; Symbol: ER_RPL_FAILED_TO_RESET_STATE_IN_SLAVE_INFO_REPOSITORY; SQLSTATE: HY000
Message: Could not store the reset Slave Worker state into the slave info repository.
错误说明
MY-010421:ER_RPL_FAILED_TO_RESET_STATE_IN_SLAVE_INFO_REPOSITORY错误指示在在从库信息存储库中重置状态时失败。 将影响MySQL复制行为。此错误是由MySQL5.5及更高版本的二进制格式引起的。
常见案例
该错误通常会在使用REPLACE INTO功能时出现,即将新记录插入到存在字段冲突的旧记录中。另外,当尝试替换表行时会引起此错误,其假设有一个记录已经存在具有旧值,并且假设将其替换为新值。
解决方法
1. 检查查询,确保它不是使用REPLACE INTO或在已经存在的表行中简单地更新记录,而是使用INSERT INTO … ON DUPLICATE KEY UPDATE。
2. 检查复制用户权限,确保复制用户可以访问所有所需的表和列(确保拥有SELECT;DELETE;INSERT;UPDAT及 RELOAD权限)。
3. 检查所有复制配置,以确保它们已正确设置。
4. 如果错误仍然存在,可以使用myisamchk工具扫描Slave info存储库,这是复制状态文件,并尝试修复它(最好在备份后操作)。
5. 也可以禁用查询日志,然后再重试复制过程。可以在my.cnf文件中像这样做:log-bin=false。
6. 在替换表行时,可以在同一个事务中尝试在目标表中删除行,然后使用INSERT INTO.. ON DUPLICATE KEY标记将记录插入表中。
7. 如果以上步骤仍然无法解决问题,可以尝试使用INNODB而不是MyISAM,因为MyISAM使用独立
存储套件。启用INNODB可以帮助解决问