前言
- 在备份项目数据时导出sql文件,加上数据大概有80M,用sqlyog导入时报错“mysql has gone away”
分析
- sql文件过大,mysql执行时超过最大包大小,导致连接断开
客户端max_allowed_packet取值范围4096-2G,默认值是16M
客户端net_buffer_length取值范围1024-512M,默认值16K
服务器max_allowed_packet取值范围1024-1G,默认值是1M
服务器net_buffer_length取值范围1024-1M, 默认值16K
解决
- 查看通信缓冲区的大小
show global variables like 'max_allowed_packet';
- 调整大小 20M
set global max_allowed_packet=1024*1024*20;