Navicat运行Sql文件报错:[ERR] 2006 - MySQL server has gone away

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

[ERR] 2006 - MySQL server has gone away

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

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

若显示的是max_allowed_packet=1024123123,则说明修改成功,若不是(本人就是这种情况),则需要按以下步骤修改参数:
Navicat运行Sql文件报错:[ERR] 2006 - MySQL server has gone away_第1张图片
Navicat运行Sql文件报错:[ERR] 2006 - MySQL server has gone away_第2张图片

二、运行后又出现:

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

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

  1. 在配置文件(D:\xampp\mysql\data\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文件报错:[ERR] 2006 - MySQL server has gone away_第3张图片

Navicat运行Sql文件报错:[ERR] 2006 - MySQL server has gone away_第4张图片
完成以上两个修改,重启Navicat,再次运行.sql文件,终于运行成功!

你可能感兴趣的:(MySql,sql,mysql,数据库)