今天在使用Navicat Premium 12可视化工具导入mysql的sql文件时,导入失败,出现如下错误:2006 - MySQL server has gone away。
【问题】
导入的sql文件大概有15M,导入过程中报错:2006 - MySQL server has gone away
【解决办法】
1、找到MySQL安装目录下的my.ini文件,修改max_allowed_packet的大小,根据自己的sql文件的大小设置,一定要大于sql文件。
也可以对wait_timeout和interactive_timeout 进行设置:
wait_timeout=288000
interactive_timeout = 288000
2、修改完之后需要重启mysql服务
3、重启 之后,重新导入sql文件,导入成功。
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';