MySQL InooDB 错误 [42000][1118] Row size too large (>8126) 主要解决方案无效

MySQL InooDB error [42000][1118] Row size too large (> 8126) main solution did not work

我遇到了这个突然出现的问题,根本没有更新本地服务器,它工作正常。我试图更新 MySQL 5.6 InnoDB 的文本字段中的数据,但出现此错误(table 包含 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

但是并没有解决问题然后再次搜索并在Whosebug 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.

而且也没有解决问题。那么如何在不重启 MySQL 服务的情况下在本地主机和服务器上解决这个问题,因为托管会拒绝重启。

计划 A(解决方法):构建并行 table ("Vertical partitioning")。将一些大字段移到它上面。新的 table 可以有相同的 PRIMARY KEY(但不是 AUTO_INCREMENT)。当您需要 SELECT 两组列时使用 JOIN

B 计划:让我们看看 SHOW CREATE TABLE 以便我们可以评论这些专栏。