Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.

mysql5.6导入到8.0报错的,意思是表的数据太大,超过了允许的最大值

执行下面命令,关闭严格模式就可以了

show engines
show variables like ‘%innodb_strict_mode%’;
set innodb_strict_mode=OFF

 

如果上诉方法没用

问题:在MySQL8.0的数据库中运行 sql文件导入数据时,报 Row size too large (> 8126)

原因:row size 其实就是所有字段的长度的总和,当数据表涉及的字段非常多,或者设计不合理时,可能会超过MySQL默认的 innodb_log_file_size 限制

解决方式:

找到MySQL的配置文件:my.ini 或者 my.cnf

在配置文件中找到 innodb_strict_mode 及 innodb_log_file_size(如果文件中没有则直接新增:建议在innodb出现的附近新增)

innodb_log_file_size=1024M
innodb_strict_mode=0
1
2
配置完成后,重启MySQL服务即可

验证:通过命令行查询系统参数

show variables like ‘%innodb_strict_mode%’; — innodb_strict_mode OFF

show variables like ‘%innodb_log_file_size%’; — innodb_log_file_size 1073741824

 

 

标签

发表评论