问题描述:mysql主从复制报错:Last_SQL_Error: Error 'The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size. Increase the redo log size using innodb_log_file_size.
意思就是:在一个事务中插入的BLOB/TEXT数据的大小大于重做日志大小的10%。使用innodb_log_file_size增加重做日志大小。
报错如下:
解决步骤:
1、查看innodb_log_file_size值的大小
mysql> SHOW VARIABLES LIKE '%innodb_log_file_size%';
+----------------------+---------+
| Variable_name | Value |
+----------------------+---------+
| innodb_log_file_size | 5242880 |
+----------------------+---------+
值为:5242880/1024/1024=5M
2、停止主从
mysql> stop slave;
Query OK, 0 rows affected (0.01 sec)
3、修改innodb_log_file_size值的大小
vim my.cnf
#添加参数
innodb_log_file_size=256M
说明:修改完重启从数据库,企图临时修改set innodb_log_file_size = 256 * 1024 * 1024;,会报错:ERROR 1238 (HY000): Variable 'innodb_log_file_size' is a read only variable,只读变量,所有只能修改配置文件重启数据库。
4、重起完数据库,开启主从
SHOW VARIABLES LIKE '%innodb_log_file_size%';
+----------------------+-----------+
| Variable_name | Value |
+----------------------+-----------+
| innodb_log_file_size | 268435456 |
+----------------------+-----------+
1 row in set (0.00 sec)
mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)
完美解决,MySQL主从恢复正常!