MySQL InnoDB错误[42000] [1118]行大小太大(> 8126)主要解决方案无法正常工作

时间:2015-04-05 10:57:26

标签: mysql innodb

我有这个问题突然出现而没有更新本地服务器任何它工作正常。我试图更新MySQL 5.6 InnoDB的文本字段中的数据,但我收到此错误(表包含24个文本字段,只有1行)

[42000][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.

所以我搜索并找到了这个解决方案(更改了my.ini)并重新启动了MySQL服务Solution page

max_allowed_packet = 1G
innodb_log_file_size = 2G
innodb_log_buffer_size = 512M

但它没有解决问题然后再次搜索并在stackoverflow Solution page中找到此解决方案并重新启动MySQL服务

innodb_log_file_size = 10G

并试图像这样使用压缩

ALTER TABLE pages ROW_FORMAT=compressed

但得到了这个警告

Warning Code : 1478
InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_format > Antelope.
Warning Code : 1478
InnoDB: assuming ROW_FORMAT=COMPACT.

它也没有解决问题。那么如何在localhost和服务器上解决这个问题而不重启MySQL服务,因为托管会拒绝重启。

1 个答案:

答案 0 :(得分:1)

计划A(解决方法):构建并行表("垂直分区")。将一些大字段移动到它。新表可以具有相同的PRIMARY KEY(但不是AUTO_INCREMENT)。当您需要JOIN两组列时,请使用SELECT

B计划:让我们看SHOW CREATE TABLE,这样我们就可以对这些列进行评论。