一、用Navicat运行一个较大的Sql文件(70M+),出现以下报错

[ERR] 2006 - MySQL server has gone away

若之前没有修改过max_allowed_packet参数,最可能的原因就是一次性运行的.sql文件大小超过了Navicat的限制,需要增大max_allowed_packet参数:

  1. 在配置文件(D:\xampp\mysql\bin\my.ini)中,[mysqld]下面新增一行:
max_allowed_packet=1024123123
  1. 重启后打开SQL控制台运行
show variables like '%max_allowed_packet%';

若显示的是max_allowed_packet=1024123123,则说明修改成功,若不是(本人就是这种情况),则需要按以下步骤修改参数:
在这里插入图片描述
在这里插入图片描述

二、运行后又出现:

[ERR] 1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=

在执行创建表或者增加字段时,row size长度过长就会导致出现以上错误,需要关闭严格模式:

  1. 在配置文件(D:\xampp\mysql\bin\my.ini)中,[mysqld]下面新增一行:
innodb_strict_mode=0
  1. 重启后打开SQL控制台运行
show variables like '%innodb_strict_mode%';

若显示的是innodb_strict_mode=OFF,则说明修改成功,若是ON(本人就是这种情况),则需要按以下步骤修改参数innodb_strict_mode为OFF。
在这里插入图片描述

在这里插入图片描述
完成以上两个修改,重启Navicat,再次运行.sql文件,终于运行成功!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐