1118 – Row size too large (> 8126)
1118 – Row size too large (> 8126)

1118 – Row size too large (> 8126)

1.问题描述:

1118 - 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.

2.产生原因:

1.表中数据多,产生的日志过多,默认的日志文件大小太小了;

2.不同引擎之间使用的存储格式不同。MyISAM有3种行存储格式:fixed/dynamic/compressed。InnoDb在MyIASM基础上新引入了Barracuda。至于不同引擎的默认设置,以及各种存储格式之间的区别,

3.解决方案

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

方式二:修改其他引擎

修改前数据库信息:

image-20230221160136784

修改为一下引擎:

image-20230221160209667

方式三:

尝试在配置文件中添加以下选项:

要激活新文件格式: innodb_file_format = Barracuda

将每个表存储在自己的文件中: innodb_file_per_table = 1

为防止出现意外: innodb_strict_mode = ON

要存储长的可变长度列值,请对大型表使用动态或压缩行格式。

例如,使用ALTER TABLE LargeTable ENGINE = InnoDB ROW_FORMAT = DYNAMIC;

发表回复

您的电子邮箱地址不会被公开。