日前在作mysql备份还原的时候出现了一个问题,全备数据库再还原,在还原时候会出现如下错误:mysql
ERROR 1118 (42000) at line 1480: 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在存储临时文件类的数据库的时候默认使用innodb做为数据库存储引擎,而这个存储类型的最大支持行数为8126,针对此类问题有如下几个方法:
sql
一、修改所在的数据库存储引擎为innodb数据库
二、设置行格式为动态 bash
SET GLOBAL innodb_default_row_format='dynamic';
若是不肯定本身的数据库行格式是什么能够使用如下命令查询:ide
show global VARIABLES like '%innodb_default_row_format%'
三、关闭innodb严格格式
spa
set global innodb_strict_mode=OFF
PS:刚开始我把这些设置加在/etc/my.cnf里面,我用helm安装的mariadb pod启动会报错,识别不到这个参数,因此我只能使用全局命令
orm