今天在使用Navicat Premium 12可视化工具导入mysql的sql文件时,导入失败,出现如下错误:2006 - MySQL server has gone away。

   【问题】

   导入的sql文件大概有15M,导入过程中报错:2006 - MySQL server has gone away

   

MySQL导入sql文件时报错:2006 - MySQL server has gone away_mysql

【解决办法】

   1、找到MySQL安装目录下的my.ini文件,修改max_allowed_packet的大小,根据自己的sql文件的大小设置,一定要大于sql文件。

  

MySQL导入sql文件时报错:2006 - MySQL server has gone away_连接数据库_02

也可以对wait_timeout和interactive_timeout 进行设置:

   wait_timeout=288000
   interactive_timeout = 288000

   2、修改完之后需要重启mysql服务

   

MySQL导入sql文件时报错:2006 - MySQL server has gone away_sql文件_03

 

3、重启 之后,重新导入sql文件,导入成功。

   

MySQL导入sql文件时报错:2006 - MySQL server has gone away_sql文件_04

 

interactive_timeout针对交互式连接,wait_timeout针对非交互式连接。所谓的交互式连接,即在mysql_real_connect()函数中使用了CLIENT_INTERACTIVE选项。

说得直白一点,通过mysql客户端连接数据库是交互式连接,通过jdbc连接数据库是非交互式连接。
interactive_timeout:交互式连接超时时间(mysql工具、mysqldump等)
wait_timeout:非交互式连接超时时间,默认的连接mysql api程序,jdbc连接数据库等

2、如何设置和查看:

mysql> show global variables like 'wait_timeout'; 

mysql> show global variables like 'interactive_timeout';
mysql> set global interactive_timeout=1800;
mysql> set global wait_timeout=1800;

show variables like 'max_allowed_packet';