工作中經常需要導入或者導出較大的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默認值太小。修改該值一般游兩種方式。
方式一:sql語句修改
1、首先登陸mysql查看當前該值的大小。
show variables like '%max_allowed_packate%'
2、修改其大小為1G
set global max_allowed_packet = 1024*1024*1024
這種修改方式修改后,需要重新登陸Mysql查看,才能看到修改后的值。並且,這種方式修改的mysql max_allowed_packet,在Mysql重啟后,可能失效。
方式二:my.ini修改
1、在my.ini文件中添加如下語句。比如:改為1G.如下圖所示。修改完成后,需要重啟mysql。
注意:方式2中max_allowed_packed一定是添加在【mysqld】才能生效。