1. 解決com.mysql.jdbc.PacketTooBigException: Packet for query is too large (3158064)問題
mysql根據配置文件會限制server接受的數據包大小。有時候大的插入和更新會被max_allowed_packet 參數限制掉,導致失敗。
解決方案一:
MySQL的一個系統參數:max_allowed_packet,其默認值爲1048576(1M),
查詢:show VARIABLES like '%max_allowed_packet%';
修改此變量的值:
MySQL安裝目錄下的
my.ini文件中的[mysqld]段中的"max_allowed_packet = 1M",(可能有些文件會沒有這一行的)
格式爲:
[mysqld]
max_allowed_packet = 1M ( 將1M更改爲16M(如果沒有這行內容,增加一行)),
保存,重起MySQL服務。
現在可以load大於1M的文件了
不重啓mysql使my.cnf生效,命令行下配置like 'max_allowed_packet'
方案二:不重啓mysql使my.cnf生效,命令行下配置like 'max_allowed_packet=16M' (1.6*1024*1024*10)
在命令行裏輸入 set global max_allowed_packet=1677716;
然後,關閉連接,查看下修改過來了沒有 show VARIABLES like '%max_allowed_packet%';