使用SQLyog 转储备份SQL文件,在另外一台电脑还原
1.还原过程中遇到 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.
原因:
①. mysql 默认的 page 最大是 16k,而 page 中单行最大不能超过 8k
②. text 或者 blob 字段太多也会导致一行数据大于 8k,因为 innodb 默认的 approach(羚羊)存储格式会把每个 blob 字段的前 864 个字节存储在 page 里。这样的话一旦有很多个text 或者 blob字段,还是有可能超过 8k
解决:
①、可以尝试将 varchar 字段改成 text 或者 blob
②、表结构需要重新设计,减少字段个数
③、修改 my.ini 配置文件,关闭数据库 严格模式
查询分析器中查询看严格模式是否开启,如果开启(ON),则需要关闭,
show variables like '%innodb_strict_mode%';
找到MySQL的配置文件位置,如C:\Program Files\MariaDB 10.6\data\my.ini
,可查看系统变量找到安装目录。
右键编辑,在[mysqld]配置项下面新增一行,保存,然后重启服务。
[mysqld] innodb_strict_mode=0
标签:8k,text,备份,字段,innodb,还原,MySql,page,blob From: https://www.cnblogs.com/sky-gfan/p/16948278.html