mysql中blob字段太大溢出解决
程序员文章站
2022-07-15 15:14:39
...
运行blob测试程序,数据有点大,32M,结果报出了下面的异常信息:
com.mysql.jdbc.PacketTooBigException: Packet for query is too large (37748784 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2691)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1612)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1332)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1604)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1519)
解决方法,在my.ini里的[mysqld]增加如下部分
[mysqld]
max_allowed_packet=64M
注意:
(1)在[client]和[mysql]部分增加无效,那个是客户端读取的参数;
(2)需要重新启动mysql服务!
my.ini文件修改部分如下图所示:
com.mysql.jdbc.PacketTooBigException: Packet for query is too large (37748784 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2691)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1612)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1332)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1604)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1519)
解决方法,在my.ini里的[mysqld]增加如下部分
[mysqld]
max_allowed_packet=64M
注意:
(1)在[client]和[mysql]部分增加无效,那个是客户端读取的参数;
(2)需要重新启动mysql服务!
my.ini文件修改部分如下图所示:
推荐阅读
-
MySQL中因字段字符集不同导致索引不能命中的解决方法
-
mysql中blob字段太大溢出解决
-
mySQL中建表的中文字段与中文乱码问题解决办法
-
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
-
解决MySQL中float字段SUM()时出现一堆小数的问题_MySQL
-
Json_encode过的字段值在mysql中模糊查询不出来的原因及解决办法_MySQL
-
MySQL中不能创建自增字段的解决方法
-
Json_encode过的字段值在mysql中模糊查询不出来的原因及解决办法_MySQL
-
解决MySQL中float字段SUM()时出现一堆小数的问题_MySQL
-
MySQL中同时存在创建和上次更新时间戳字段解决方法浅析