1. 程式人生 > >Mysql max_allowed_packet Lost connection to MySQL server during query [Err] 2013 - Lost connection to MySQL server during query

Mysql max_allowed_packet Lost connection to MySQL server during query [Err] 2013 - Lost connection to MySQL server during query

[Err] 2013 - Lost connection to MySQL server during query

解決方法:

[mysqld]
max_allowed_packet=20971520

我設的是20M(1024*1024*20) = 20971520


工作中經常需要匯入或者匯出較大的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】才能生效。