前景概要
测试插入批量数据发送的sql语句太大。
//INSERT INTO `stress_test_table`(`id`, `name`, `age`, `sex`, `email`) VALUES
//(NULL, 'name', age, sex, 'email'),
....
.......
//(NULL, 'name', age, sex, 'email');
报错如下
com.mysql.cj.jdbc.exceptions.PacketTooBigException: Packet for query is too large (100,758,000 > 4,194,304). You can change this value on the server by setting the 'max_allowed_packet' variable.
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:107)
at com.mysql.cj.jdbc.StatementImpl.executeInternal(StatementImpl.java:764)
at com.mysql.cj.jdbc.StatementImpl.execute(StatementImpl.java:648)
at com.domoyun.mybatis_plus.StressTest.batch(StressTest.java:189)
at com.domoyun.mybatis_plus.StressTest.main(StressTest.java:93)
com.mysql.cj.jdbc.exceptions.PacketTooBigException:查询数据包太大(100,758,000> 4,194,304)。您可以通过设置“ max_allowed_packet”变量在服务器上更改此值。
解决方法
修改MYSQL数据目录
下my.ini(一般安装的时候要指定程序目录
和数据目录
)
max_allowed_packet默认是4M