MySQL ERROR 1118 Row size too large 或 PacketTooBigException: Packet for query is too large

本文详细介绍了如何解决MySQL中常见的错误1118(Row size too large)和PacketTooBigException(Packet for query is too large)。通过调整my.ini配置文件中的参数,如innodb_log_file_size、innodb_log_buffer_size、innodb_strict_mode和max_allowed_packet,可以有效避免这些错误。文章提供了具体的修改步骤和重启服务的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误1:

ERROR 1118
Row size too large (> 8126). Changing some columns to TEXT or
BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
原因:字段太多,超过mysql默认配置的字段数量了,可以通过修改配置来扩大数量。

或者是错误2:

com.mysql.jdbc.PacketTooBigException: Packet for query is too large
原因:每次传输的包太大了,超过了配置文件里配置的最大包大小了。

解决步骤

步骤1:知道要修改哪些配置参数:

对于原因1,我自己是添加了3个配置参数:
innodb_log_file_size = 500M
innodb_log_buffer_size = 800M
innodb_strict_mode = 0
对于原因2,只需添加1个参数:
max_allowed_packet = 256M
前面3个参数是我参考这个得出来的:https://stackoverflow.com/questions/22637733/mysql-error-code-1118-row-size-too-large-8126-changing-some-columns-to-te

步骤2:编辑my.ini配置文件,将上面的参数输进去

linux下是:sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
编辑完my.ini之后,按Ctrl + X退出,按提示输入Y然后回车保存

windows下的my.ini所在位置:
https://blog.youkuaiyun.com/Sunshine_ZCC/article/details/75195953
(注: 如果已经配置了AAA=123,又想配置AAA=456,记得注释掉其中一个,否则mysql会以最后出现的为准。)

步骤3:重启mysql服务

linux下:
/etc/init.d/mysqld restart 或者 service mysqld restart 或者 service mysql restart,然后输入密码。如图:
在这里插入图片描述
windows下:好像好像是在任务管理器里的服务那里,重启mysql服务,好像要重启多个mysql的服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值