我有这个问题突然出现而没有更新本地服务器任何它工作正常。我试图更新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服务,因为托管会拒绝重启。
答案 0 :(得分:1)
计划A(解决方法):构建并行表("垂直分区")。将一些大字段移动到它。新表可以具有相同的PRIMARY KEY
(但不是AUTO_INCREMENT
)。当您需要JOIN
两组列时,请使用SELECT
。
B计划:让我们看SHOW CREATE TABLE
,这样我们就可以对这些列进行评论。