今天在進行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