今天在运行MySQL文件的时候不成功,查看信息日志,发现报了这样的错:[ERR] 2013 - Lost connection to MySQL server during query
在这里插入图片描述
意思应该是一开始查询的时候就失去了连接。查看了MySQL进程依然在进行,于是乎百度,在此记录一下自己的解决方法。

一、使用MySQL命令行设置

出现这个错误的原因是MySQL会根据my.ini配置文件来限制传输的数据包大小,而我的MySQL5.7一开始并没有my.ini文件,我在写入配置的时候也没有设置过相关的参数。
打开MySQL的命令窗口,登录进入,输入命令:
select @@max_allowed_packet;,查询结果如图:
在这里插入图片描述
说明当前使用的默认值是4M,我将允许接收的数据包大小最大值设置为500M:set global max_allowed_packet = 5*1024*1024*100;
增大此配置的值并不会有太多危险,因为额外的内存仅仅只在需要的时候被分配。之所以默认配置很小是为了预防意外情况下发送了巨大的数据包导致oom。

此处须知 设置完之后必须先退出命令行,再重启MySQL的服务才会看到新的修改结果!
在这里插入图片描述
查询问题过程中得知通过命令行的修改并不是一劳永逸的,如果数据库重启会复原,想要一劳永逸,则采取方法二。

二、修改my.ini配置文件

在my.ini文件的[mysqld]下加上:

#设置允许server接收的数据包最大值
max_allowed_packet = 500M

如果配置文件中本来就有这个参数的配置,需要将原本的设置注释掉,直接增加这条参数的配置的话可能会被覆盖掉,导致修改不生效。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐