Exception in thread "Thread-62" org.springframework.dao.TransientDataAccessResourceException: StatementCallback; SQL [
INSERT INTO t_agent_strength(agent_code,agent_strength,agent_strength_time,status) VALUES ( '1403050045' , '3-7.9-0.0-10.8-9.4' , '2015-02-06 09:54:08' , 1 ) , ( '1405041725' , '2-11.9-0.0-14.7-8.8' , '2015-02-06 09:54:08' , 1 ) , ( '1405042489' , '1-11.5-0.0-15.0-11.8' , '2015-02-06 09:54:08' , 1 ) , ( '1405041285' , '2-14.3-5.4-20.8-19.2' , '2015-02-06 09:54:08' , 1 ) , ( '1405041162' , '3-6.2-0.0-10.1-7.2' , '2015-02-06 09:54:08' , 1 ) , ( '1309030004' , '1-25.6-23.0-26.2-25.8' , '2015-02-06 09:54:08' , 1 ) , ( '1403050040' , '3-9.9-0.0-12.1-9.5' , '2015-02-06 09:54:08' , 1 ) , ( '1405042392' , '3-13.3-2.4-22.7-22.3' , '2015-02-06 09:54:08' , 1 ) , ( '1403050018' , '3-7.6-0.0-20.6-6.9' , '2015-02-06 09:54:08' , 1 ) , ( '1403050037' , '2-10.8-0.0-12.4-10.1' , '2015-02-06 09:54:08' , 1 ) , ( '1405041769' , '2-11.3-0.0-15.0-11.2' , '2015-02-06 09:54:08' , 1 ) , ( '1403040120' , '2-13.4-4.5-23.8-9.7' , '2015-02-06 09:54:08' , 1 ) , ( '1403050091' , '3-12.2-5.4-21.1-6.6' , '2015-02-06 09:54:08' , 1 )
]; Packet for query is too large (1109 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.; nested exception is com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1109 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.
at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:107)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:407)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:519)
at com.cap.dao.DABroker.update(DABroker.java:244)
解决方案一:
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)
<pre name="code" class="html">mysql> set global max_allowed_packet=1677716;
Query OK, 0 rows affected, 1 warning (0.00 sec)