MySql 备份还原

使用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

  

posted @ 2022-12-03 16:26  竹殇  阅读(74)  评论(0编辑  收藏  举报