今天想导入一个数据库,讲道理其实也不算很大,所以一开始我选择的PHPmyAdmin来导入,结果出了问题,我还以为是 MariaDB导出的SQL语法不兼容的问题,后来发现报错为 MySQL server has gone away,早早就断了MySQL服务器的连接,所以后续的操作没有办法继续依照之前的导入顺序进行。

更换了 Navicat 之后,还是出现这样的问题。于是我分析了一下SQL文件,发现文件行不多,只有一千多行,但是 insert 语句的 values 特别特别长,估计是由于一个大量数据的Insert操作导致SQL的执行时间过长,所以与客户端断开连接。
执行SQL查询

show global variables like ‘max_allowed_packet’;

 

看到 max_allowed_packet 的最大值是4M,而那条 insert 语句将要插入大概12M的记录,大大超过了限值。

将其非常夸张的改成50M

set global max_allowed_packet = 1024*1024*50;

此时再通过 Navicat 执行 SQL FILE 就可以完成导入了。