在我們使用mysql導入大文件sql時可能會報MySQL server has gone away錯誤,該問題是max_allowed_packet配置的默認值設置太小,只需要相應調大該項的值之后再次導入便能成功。該項的作用是限制mysql服務端接收到的包的大小,因此如果導入的文件過大則可能會超過該項設置的值從而導致導入不成功!下面我們來看一下如何查看以及設置該項的值。
查看 max_allowed_packet 的值
可以看到默認情況下該項的大小只有4M,接下來將該值設置成150M(1024*1024*150)
此時再查看大小
通過調大該值,一般來說再次導入數據量大的sql應該就能成功了,如果任然報錯,則繼續再調大一些就行,請注意通過在命令行中進行設置只對當前有效,重啟mysql服務之后則恢復默認值,但可以通過修改配置文件(可以在配置文件my.cnf中添加max_allowed_packet=150M即可)來達到永久有效的目的,可其實我們並不是經常有這種大量數據的導入操作,所以個人覺得通過命令行使得當前配置生效即可,沒有必要修改配置文件。