1.问题描述:
Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help
在这里插入图片描述
在这里插入图片描述

2.产生原因:
1.表中数据多,产生的日志过多,默认的日志文件大小太小了;
2.不同引擎之间使用的存储格式不同。MyISAM有3种行存储格式:fixed/dynamic/compressed。InnoDb在MyIASM基础上新引入了Barracuda。至于不同引擎的默认设置,以及各种存储格式之间的区别,

3.解决方案
方式一:修改Mysql数据库配置文件
把Mysql数据库的my.ini配置项innodb_log_file_size=512M修改1024M,重启数据库服务就可以了。

方式二:修改其他引擎
修改前数据库信息:在这里插入图片描述
修改为一下引擎:
在这里插入图片描述

方式三:
尝试在配置文件中添加以下选项:
要激活新文件格式: innodb_file_format = Barracuda
将每个表存储在自己的文件中: innodb_file_per_table = 1
为防止出现意外: innodb_strict_mode = ON
要存储长的可变长度列值,请对大型表使用动态或压缩行格式。
例如,使用
ALTER TABLE LargeTable ENGINE = InnoDB ROW_FORMAT = DYNAMIC;

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐