在数据库管理过程中,将SQL文件导入MySQL数据库是一项常见且重要的任务。然而,许多用户在执行这一操作时遇到了1118错误,这不仅影响了工作的顺利进行,也带来了不少困惑。本文旨在深入探讨这一问题的原因,并提供一系列有效的解决方案,帮助用户顺利解决1118错误,确保数据的正确导入。
一、 问题描述
提示:具体错误如下
[ERR] 1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
二、 原因分析
与发送SQL文件的同事沟通他说可能是他用的MySQL版本是5.7的而我用的是8.0的版本的问题,具体是否后边我也没有做验证了
网上搜索的原因大致是说
“在执行创建表或者增加字段时,发现row size长度过长,会导致出现以下错误”
三、 解决方案
1、执行以下SQL语句,查看严格模式是否是开启
// 查看严格模式是否是开启(这里在Navicat新建查询里运行也是一样的) show variables like '%innodb_strict_mode%';
2、执行后如果为ON,则需要关闭
Variable_name Value innodb_strict_mode ON
3、找到MySQL的配置文件位置
我的位置如 D:\Users\Work\Software\MySql\MySQL Data\my.ini,可查看系统变量找到安装目录。
右键编辑,在[mysqld]配置项下面新增一行
//在[mysqld]下面新增 innodb_strict_mode=0
4、保存,然后重启MySQL服务
// 再次执行以下SQL语句,查看严格模式是否是关闭
show variables like '%innodb_strict_mode%';
Variable_name Value innodb_strict_mode OFF
如果为OFF,则说明执行成功。再导入试试,我就是使用此方法解决,导入就没问题了!
总结
通过本文的探讨,我们了解了在将SQL文件导入MySQL数据库时遇到1118错误的常见原因,主要是由于INSERT语句中的数据行超过了表的最大行数限制。并提供了详细的解决方法。希望本文能够帮助用户顺利解决1118错误,提高数据导入的成功率和效率。在未来的数据库管理过程中,合理规划表结构和数据导入方案,将有助于避免类似问题的发生。
本文来源于#Chenry.r,由@ZhanShen 整理发布。如若内容造成侵权/违法违规/事实不符,请联系本站客服处理!
该文章观点仅代表作者本人,不代表本站立场。本站不承担相关法律责任。
如若转载,请注明出处:https://www.zhanid.com/biancheng/2052.html