Row size too large Changing some columns to TEXT o

日前在作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