阿牛 发表于 2018-10-3 07:09:59

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

  mysql版本:mysql 5.6
  mysql引擎:默认InnoDB
  问题原因:由于一张定义角色信息表有接近300列,并且多数是blog的数据类型,数据存储时报这个错:

  Row>  问题分析:

  You may want to take a look at this article which explains a lot about MySQL row>
  The simplest way to fix this is to use the Barracuda file format with InnoDB. This basically gets rid of the problem>  解决方法:
  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;

页: [1]
查看完整版本: mysql错误:Row size too large (> 8126).