MySQL:错误代码:1118行大小太大> 8126将某些列更改为TEXT或BLOB

问题描述

由于MySQL Server 5.6.20的更改,最近我一直在使用相同的错误代码。我可以通过更改my.ini文本文件中的innodb_log_file_size来解决此问题。

在发行说明中,解释了innodb_log_file_size太小会触发“行大小太大错误”。

http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-20.html

解决方法

我想创建一个包含 325 列的表:

CREATE TABLE NAMESCHEMA.NAMETABLE 
(   
      ROW_ID TEXT NOT NULL,//this is the primary key

324 column of these types:
      CHAR(1),DATE,DECIMAL(10,0),7),TEXT,LONG,) ROW_FORMAT=COMPRESSED;

我用TEXT替换了所有VARCHAR,并在MySQL的my.ini文件中添加了 梭子鱼 ,这是添加的属性:

innodb_file_per_table=1
innodb_file_format=Barracuda
innodb_file_format_check = ON

但是我仍然有这个错误:

Error Code: 1118
 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format,BLOB prefix of 0 bytes is stored inline.

编辑:我不能更改数据库的结构,因为它是旧的应用程序/系统/数据库。创建一个新表,它是旧数据库的导出。

EDIT2:我写的这个问题与其他问题类似,但是里面有一些我在互联网上找到的解决方案,例如VARCHAR和Barracuda,但是我仍然遇到这个问题,所以我决定打开一个已经包含经典答案的新问题,看看是否有人还有其他答案

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...