背景:
同事在上传文件时碰到这样一个数据库报错,上传文件大小为10M。
java.sql.SQLSyntaxErrorException: The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size.....
解决方式:
从报错信息看是因为innodb_log_file_size太小,至于原因,在 mysql 5.6中,对innodb_log_file_size做了限制,如果存在blob字段,则innodb_log_file_size必须至少是最大单行数据的10倍大小。查了一下当前大小: SHOW VARIABLES LIKE '%innodb_log_file_size%';
50331648这个其实就是默认配置, 50331648/1024/1024 = 48M,修改mysql配置文件my.ini,将该配置调大,然后需要重启数据库。
[mysqld]
innodb_log_file_size=256M