一、引言
工作中经常需要导入或者导出较大的sql文件。导出时一般没问题,但在导入到其它Mysql库中,可能会出现
“Packet for query is too large (1706 > 1024). You can change this value on the server by setting the max_allowed_packet' variable. ”
或者程序(如python里面executemany)在插入大量数据时出现"MySQL server has gone away"
。
这些错误都可能是Mysql的mysql max_allowed_packet默认值太小。修改该值一般游两种方式。
二、解决方案
1、sql语句修改
首先登陆mysql查看当前该值的大小。
show variables like '%max_allowed_packate%'
修改其大小为1G
set global max_allowed_packet = 1024*1024*1024
2、my.ini修改
1> 在my.ini文件中添加如下语句。比如:改为1G.如下图所示。修改完成后,需要重启mysql。
my.ini
注意:方式2中max_allowed_packet一定是添加在【mysqld】下才能生效。
三、第三方数据库
假如是百度云这样的数据库,直接登录账号,在网页上界面界面化修改即可。