【Mysql操作容量限制问题】Error updating database. Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1082 > 1024)

在做查询数据库操作时,报了以上错误,还有out of memery heap hacp ,原因是mysql的max_allowed_packet设置过小引起的,我一开始设置的是1M,后来改为了20M

mysql根据配置文件会限制server接受的数据包大小。

有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败。

查看目前配置

show VARIABLES like ‘%max_allowed_packet%‘;

显示的结果为:

+--------------------+---------+ | Variable_name      | Value   | +--------------------+---------+ | max_allowed_packet | 1048576 | +--------------------+---------+

以上说明目前的配置是:1M

修改方法

1.方法1
可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。

max_allowed_packet = 20M

如果找不到my.cnf可以通过

mysql --help | grep my.cnf

去寻找my.cnf文件。

亲测:修改/etc/my.cnf文件,增加配置即可,然后重启mysql服务

2.方法二
进入mysql server
在mysql 命令行中运行
set global max_allowed_packet = 2*1024*1024*10
然后关闭掉这此mysql server链接,再进入。
show VARIABLES like ‘%max_allowed_packet%‘;
查看下max_allowed_packet是否编辑成功

经验总结:
在很多台机器上用方法一都没问题,但遇到一台机器死活都不成功,
使用命令行方式:set global max_allowed_packet = 16M;
也不行,但使用set global max_allowed_packet = 2*1024*1024*10;
成功了,很是郁闷
问题终于找出来了,不是方法的问题,是设置完成后要把命令行退出重新登录查看,看来系统变量的值在登录后会缓存。但在这台机器上使用配置INI文件。

原文地址:https://www.cnblogs.com/sunny3096/p/8443156.html

时间: 2024-10-13 22:43:26

【Mysql操作容量限制问题】Error updating database. Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1082 > 1024)的相关文章

com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1169 > 1024)

### Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1169 > 1024). You can change this value on the server by setting the max_allowed_packet' variable. ; SQL []; Packet for query is too large (1169 > 1024). You can change

nested exception is com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1044 > 1024

HTTP Status 500 - type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.hibernate.exception.GenericJDBCException: could not execute query org.hibernate.exce

mysql报错Packet for query is too large (12238 > 1024). You can change this value

今天将项目部署到linux服务器的时候莫名其妙的报一些错误,可是在本地啥错没有,通过实时查看tomcat 的日志之后发现报错是: 实时查看日志: 1.先切换到:cd usr/local/tomcat5/logs 2.tail -f catalina.out 3.这样运行时就可以实时查看运行日志了 发现错误: rg.springframework.dao.TransientDataAccessResourceException: ### Error querying database. Cause

Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'username' cannot be null

今天程序中遇见这个错误一直找不到哪里错后来重写了一遍jsp页面才知道 username我写成了name 和po中的代码对应不上导致了这个错误 写代码一定要认真一点啊     好坑啊 Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'username' cannot be null

mysql提示Packet for query is too large (1142 > 1024)解决方案

注:最近mysql一直提示如下错误 Packet for query is too large (1185 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.... 按网上要求,检查max_allowed_packet show VARIABLES like '%max_allowed_packet%'; 修改max_allowed_packet set glo

Mysql异常Packet for query is too large (14040 > 1024)

在使用Sqoop将Hive中的数据导出到MySQL的过程中遇到这样的一个异常,是导出到的数据库的max_allowed_packet设置的过小所致. 通过在数据库中执行命令: mysql> show variables like 'max_%packet'; +--------------------+-----------+ | Variable_name | Value | +--------------------+-----------+ | max_allowed_packet | 2

Mysql数据中Packet for query is too large错误的解决方法

有时,程序在连接mysql执行操作数据库时,会出现如下类似错误信息: Packet for query is too large (4230 > 1024). You can change this value on the server by setting the max_allowed_packet' variable. 这个错误的大致原因是:向mysql数据库发送查询命令时,默认性况下,一个包的大小是1024,实际一条语句的长度,就大小这个,所以执行语句报错.解决的方式,就是调整mysq

Error updating database. Cause: java.sql.BatchUpdateException: Field 'id' doesn't have a default value

异常信息 ### Error updating database. Cause: java.sql.BatchUpdateException: Field 'id' doesn't have a default value Query is: INSERT INTO `test`.`order` ( `order`.`code`, `order`.`create_date`, `order`.`status`, ) VALUES ( ?, ?, 原因 数据库表设计时候id没有加自动增长 myba

### Error updating database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明标量变量 "@[email protected]"。(sql少一个逗号)【??】

(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,[??],?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)### Error updating database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明标量变量 "@[email protected]".### The erro