千家信息网

mysql错误:Row size too large (> 8126).

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,mysql版本:mysql 5.6mysql引擎:默认InnoDB问题原因:由于一张定义角色信息表有接近300列,并且多数是blog的数据类型,数据存储时报这个错:Row size too large
千家信息网最后更新 2026年11月02日mysql错误:Row size too large (> 8126).

mysql版本:mysql 5.6
mysql引擎:默认InnoDB
问题原因:由于一张定义角色信息表有接近300列,并且多数是blog的数据类型,数据存储时报这个错:
Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help
问题分析:
You may want to take a look at this article which explains a lot about MySQL row sizes. It's important to note that even if you use TEXT or BLOB fields, your row size could still be over 8K (limit for InnoDB) because it stores the first 768 bytes for each field inline in the page.

The simplest way to fix this is to use the Barracuda file format with InnoDB. This basically gets rid of the problem altogether by only storing the 20 byte pointer to the text data instead of storing the first 768 bytes.
解决方法:
1、修改mysql配置文件my.cnf
innodb_file_per_table
innodb_file_format = Barracuda
2、修改造成这个问题的表属性
ALTER TABLE $TABLE
ENGINE=InnoDB
ROW_FORMAT=COMPRESSED
KEY_BLOCK_SIZE=8;
3、重启mysql服务
4、通过写sql语句修改mysql环境配置,可以免重启服务。当然,配置文件中也必须配置上面两个参数,这个操作只是避免此次重启mysql服务
mysql> set global innodb_file_per_table =ON;
mysql> SET GLOBAL innodb_file_format = barracuda;

配置 问题 服务 数据 文件 两个 信息 原因 参数 只是 属性 引擎 方法 时报 版本 环境 类型 角色 语句 分析 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网与科技 喔噻互联网科技有限公司 高科技互联网 中关村互联网科技集团 互联网金融科技平台 互联网科技公司介绍 互联网和高科技公司 互联网科技革命什么开始 恒生互联网科技指数跳水 互联网科技公司营业执照怎么办理 半导体是互联网高科技吗 西安有哪些互联网高科技企业 上海万顺科技互联网有限公司招聘 银川新华互联网科技学校是国营吗 银川新华互联网科技学校原画 广州三三互联网科技有限公司 好易买互联网科技 陕西彩京云互联网科技有限公司 安徽九吞吴互联网科技有限公司 互联网科技自媒体灵感 科技赋能下的互联网金融 礼当家互联网科技 腾讯科技 互联网女皇 互联网科技缩写 承德科技产业互联网发展 金融科技与互联网金融相同和不同 互联网科技和法律行业 青岛易易互联网科技 平安好医生打造互联网科技医疗 互联网科技创业计划的风险分析
0