Error number: MY-013858; Symbol: ER_IB_MSG_LOG_FILE_TOO_BIG; SQLSTATE: HY000
Message: The redo log file %s is larger than %llu bytes, which indicates it was not generated by InnoDB or become corrupted. Please restore the correct file.
错误说明
MY-013858,也称为ER_IB_MSG_LOG_FILE_TOO_BIG,是MySQL在运行过程中遇到的一个错误。这个错误发生时,MySQL将无法继续运行,并且在事务日志文件或binlog文件达到最大值时会被触发。 错误代码HY000表明这是一个由服务器发出的系统错误,无法预测或避免。
常见案例
此错误的发生通常是由于事务日志文件或binlog文件满的原因。MySQL默认的binlog文件最大值是1073741824字节(1000M),可以通过“max_binlog_size”系统变量来更改。 除此之外,binlog文件大小会受到特定操作(如删除数据库或表)、实时复制或复制延迟等进程的影响。
解决方法
此错误可以通过以下几种方法来解决:
1.增加binlog文件大小:可以使用以下命令编辑文件并增加binlog文件大小:
SET GLOBAL max_binlog_size = 1073741824;
2.清理binlog文件:通过PURGE BINARY LOGS命令可以清理掉所有无用的binlog文件:
PURGE BINARY LOGS TO ”;
3.更改复制策略:可以采取针对性的行动来更改复制策略,以减少binlog文件大小。
4.增加事务日志大小:可以使用以下命令增加事务日志大小:
SET GLOBAL innodb_log_file_size = ‘256M’;
5.重启MySQL服务:最后,可以重启MySQL服务以便应用新的设置:
sudo service mysqld restart