从dev环境导出了一个大小为57M的sql文件,使用Navicat导入到一半的时候,报出下面的错误:
[Err] 2006 - MySQL server has gone away
[Err] ...
[Msg] Finished - Unsuccessfully
--------------------------------------------------
然后接着查看了MySQL的console信息:
2020-01-08T01:29:12.787613Z 9 [Note] Aborted connection 9 to db: 'testdbdev' user: 'hecg' host: 'localhost' (Got a packet bigger than 'max_allowed_packet' bytes)
意思是我们导入时候发给MySQL Server的数据包的大小超过了默认的大小,如果要解决这个问题,手动在 my.ini
文件中设置 max_allowed_packet
的大小即可:
[mysqld]
......
# 解决 [Err] 2006 - MySQL server has gone away
max_allowed_packet=128M
解决问题后,接着去MySQL官方参考手册找到了这部分内容 - 数据包太大
-
mysql客户端程序,则其默认 max_allowed_packet变量为16MB,如需要设置更大的值,可以在启动的时候指定参数:
mysql --max_allowed_packet=32M
-
mysql服务器的默认 max_allowed_packet值为64MB,如需要设置更大的值,同样也可以指定参数:
mysqld --max_allowed_packet=128M
-
对于服务器端,也可以在配置文件指定,即最上面的方法:在
my.ini
中设置max_allowed_packet
[mysqld] max_allowed_packet=128M