mysql 单行语句大小_MySQL插入单行数据较大时报 Row size too large (> 8126)错误

MySQL插入单行数据较大时报 Row size too large (> 8126): 错误

SQLSTATE[42000]: Syntax error or access violation: 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根据配置文件会限制Server端接受的数据包大小。当插入和更新的单行数据较大时,可能会受制于配置文件的参数限制max_allowed_packet,导致写入或者更新失败。

在网上搜了一些,还是没有解决,(还有破坏环境的风险)

最后

将语句中Engine=Innodb 修改为 Engine=MyISAM

解决问题。

入非要用Innodb

试试这个:

关配置参数:

max_allowed_packet: 服务器发送和接受的最大包长度,当单行数据较大时,需要调整该参数。

innodb_log_file_size: 该参数确定数据日志文件的大小,更大的设置可以提高性能,但也会增加恢复故障数据库所需的时间。

innodb_log_buffer_size: 该参数确定日志文件所用的内存大小,设置时用M单位进行设置。缓冲区更大能提高性能,但意外的故障将会丢失数据。MySQL开发人员建议设置为1~8M之间的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值