今天在把一个数据库的数据导出SQL,然后在另外一个库中执行的时候出现了这个问题,报错:
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.
主要问题大表中varchar和text(longtext)字段太多,超出mysql的默认Row Size 8k的限制。
如果涉及的表没有事务和外键的约束,可以把表类型改为MyISAM也可以解决。
下面的方法针对表类型为InnoDB的方法:
找到MySQL的安装目录,找到配置文件 my.ini,进行如下修改:
innodb_file_per_table=1 innodb_file_format=Barracuda innodb_file_format_check=ON innodb_log_file_size=512M innodb_strict_mode=0
参考:https://blog.csdn.net/itwmdevoloping/article/details/95474887