首先分析问题:php
在navicat中导入sql文件时出现MySQL server has gone away错误通常是sql语句太大致使的。html
解决办法以下:mysql
打开navicat的菜单中的tools,选择server monitor,而后在左列选择数据库,右列则点选variable表单项,寻找max_allowed_packet,将其值改大,保存。sql
改好以后,再次导入备份的sql文件,一切正常。数据库
若是仍是没法解决,能够修改mysql的配置文件,找到mysql目录下的my.ini配置文件,加入如下代码:socket
max_allowed_packet=500Mide
wait_timeout=288000spa
interactive_timeout = 288000.net
根据须要更改数值,最后记得重启mysql服务。orm
说明:max_allowed_packet是mysql容许最大的数据包,也就是你发送的请求; wait_timeout是等待的最长时间,这个值你们能够自定义,但若是时间过短的话,超时后就会现了MySQL server has gone away #2006错误。max_allowed_packet参数的做用是,用来控制其通讯缓冲区的最大长度。若是没有修改myql权限咱们能够在PHP程序里面,若是php.ini修改起来不方便,能够如下代码来尝试解决。
ini_set('mysql.connect_timeout', 300);
ini_set('default_socket_timeout', 300);
在ini_set后,能够用ini_get来验证参数设置适合符合预期。