Packet for query is too large (mysql)

今天在進行webservice訪問同步數據的時候,後臺出現一個報錯日誌:

Packet for query is too large (22101562> 20971520). You can change this value on the server by setting themax_allowed_packet' variable.; nested exception iscom.mysql.jdbc.PacketTooBigException: Packet for query is too large (22101562> 20971520). You can change this value on the server by setting themax_allowed_packet' variable.

        atorg.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:108)

        at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)

        atorg.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)

        atorg.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)

        atorg.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:74)

        atorg.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:399)

        at com.sun.proxy.$Proxy18.update(Unknown Source)

        at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:269)

        atcom.hp.core.dao.MyBatisGenericDaoImpl.updateAllByBatch(MyBatisGenericDaoImpl.java:183)

        ... 145 more

Caused by:com.mysql.jdbc.PacketTooBigException: Packet for query is too large (22101562> 20971520). You can change this value on the server by setting themax_allowed_packet' variable.


從日誌可以看出 max_allowed_packet 變量的值設置的太小了;

登錄數據庫,查看變量的大小:

show variables like 'max_allowed_packet'

20971520 發現的確是小了很多,那怎麼辦呢,修改etc文件下my.cnf的配置文件

max_allowed_packet=500M

當然 500M  你要根據自己的硬件環境進行設置;

完事之後,記住重啓數據庫服務:

推薦命令:

systemctl restart mysql

或者進入到init.d文件下重啓mysql
發佈了21 篇原創文章 · 獲贊 8 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章