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