MYSQL server has gone away .... 的错误提示的解决方案(MYSQL 5.7.26) 作者: lovingyu_er 时间: 2020-06-08 19:19:00 分类: 编程语言,MYSQL,Mysql附录,运维优化,MYSQL -view,朝花夕拾 评论 在进行数据通过Mysql 的命令行的```source```倒入数据的时候,经常会出现这种```MySQL server has gone away```字样的提示,这种问题大部分的原因是因为```max_allow_packet```字段设置的大小有问题,导致的。 ###问题原因: MySQL通过max_allowed_packet配置项来限制接收的数据包大小,默认一般是2M吧,不同的版本,大小限制不一样,超过这个```max_allowed_packet```配置的大小,会出现这个错误提示。 ###解决方案: #####方案1:临时解决方案,不用重启MYSQL 使用```show variables like '%max_allowed_packet%';```查看该选项的设置: ``` mysql> show variables like '%max_allowed_packet%'; +--------------------------+------------+ | Variable_name | Value | +--------------------------+------------+ | max_allowed_packet | 16777216 | | slave_max_allowed_packet | 1073741824 | +--------------------------+------------+ 2 rows in set (0.00 sec) ``` 上述的单位默认为```KB```, 使用命令行临时修改: ```set global variables like "%allowed%"; flush privileges;``` 注意:如果没有变化,请退出命令行然后再重新登录,查看值是否变化,我的Mysql 版本是```MYSQL 5.7.26```(命令:```show variables like '%version%';```)。 ``` mysql> show variables like '%version'; +------------------+-------------------------+ | Variable_name | Value | +------------------+-------------------------+ | innodb_version | 5.7.26 | | protocol_version | 10 | | tls_version | TLSv1,TLSv1.1 | | version | 5.7.26-0ubuntu0.18.10.1 | +------------------+-------------------------+ 4 rows in set (0.00 sec) ``` #####方案2,修改配置文件(需要重启) 修改```MYSQL```配置文件,在```[mysqld]```模块,增加```max_allowed_packet = xxM```,其中``xx``是你想要设置的包的大小限制。然后重启MYSQL服务. 参考文档: 1. ```https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_allowed_packet```