Error number: MY-010830; Symbol: ER_BINLOG_CANT_LOCATE_OLD_BINLOG_OR_RELAY_LOG_FILES; SQLSTATE: HY000
Message: Failed to locate old binlog or relay log files
Error number: MY-010830; Symbol: ER_BINLOG_CANT_LOCATE_OLD_BINLOG_OR_RELAY_LOG_FILES; SQLSTATE: HY000
错误说明:
该错误指明MySQL服务器无法在从库上找到被主库同步的旧binlog文件或者relay log文件,也就是说从库不能从主库获取旧的binlog文件来更新或复制数据。
该错误的最常见原因是旧binlog或relay log文件已被彻底删除了,无法恢复,且主库上的最新binlog文件还没有被在从库同步。
另一种可能原因是从库和主库拥有不同的binlog_format参数值,因此,主库同步过来的binlog文件在从库上可能不能被从服务器正常处理。
解决方法:
确保从库上有旧binlog文件,并且具有读取权限。检查binlog文件在从库上是否存在,如果不存在,需要从主库上重新复制到从库上(指的是csn的复制)。同时,需要检查binlog_format是否正确,此外,需要检查主库上的binlog文件是否被同步到从库上,并且从库上是否有这些文件。
如果以上检查仍然无法解决该错误,那么建议重新同步从库和主库之间的数据:
1. 首先,停止从库;
2. 把从库上的数据库拷贝到一个临时的目录;
3. 从主库上导出完整的备份,并导入到从库上;
4. 将临时文件夹中的数据更新到从库中;
5. 开启从库。