做过一些项目,使用了blob字段保存二进制信息,以方便把对象完整保存起来。导出sql文件时没有问题,然而,在导入时就报 [Err] 2006 - MySQL server has gone away 错误。
如果知道mysql正在使用哪个ini配置文件,则直接在配置文件里修改配置则可解决问题:
- wait_timeout=2880000
- interactive_timeout = 2880000
- max_allowed_packet = 10M
保存后从服务里重启mysql服务即可。
然而,有时候,由于不熟悉mysql,不知道使用的是哪个ini配置文件,几经修改无效后,只能通过命令设置使之生效了。
【查询全局配置】:
- show global variables like “%timeout%”;
- show global variables like “%packet%“;
【 修改全局配置】:
- set global interactive_timeout= 280000;
- set global wait_timeout= 280000;
不过,这种方法只是修改内存里的变量,修改完后,并没有保存起来,重启mysql服务就恢复变量值了。是个治标不治本的方法。
想要解决这个问题,还是得找出ini配置文件。怎么找呢。
后来发现,在windows环境下,查看mysql服务属性发现服务的执行文本是这样的:
“C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe” –defaults-file=”C:\ProgramData\MySQL\MySQL Server 5.7\my.ini” MySQL57”
啊,原来这个配置文件这样被配置了。