批量插入语句过多时报错

解决方案

MySQL 数据库本身对执行的 SQL 语句的大小有限制,默认是 4M ,可以通过以下语句查看

1
2
3
4
5
6
7
mysql> select @@max_allowed_packet;
+----------------------+
| @@max_allowed_packet |
+----------------------+
| 4194304 |
+----------------------+
1 row in set (0.00 sec)

通过以下语句可以修改最大执行语句的大小

1
2
3
## 修改为256M
mysql> SET GLOBAL max_allowed_packet=268435456;
Query OK, 0 rows affected (0.00 sec)

退出客户端重新登录,再输入语句查看最大值

1
2
3
4
5
6
7
mysql> select @@max_allowed_packet;
+----------------------+
| @@max_allowed_packet |
+----------------------+
| 268435456 |
+----------------------+
1 row in set (0.00 sec)