Mysql数据库报错:Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DY

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;

猜你喜欢

转载自blog.csdn.net/w892824196/article/details/107357983
今日推荐