在处理大批量数据一次存储在数据库中时,可能会出现这种异常,是由于超过了MySQL缓冲池字节大小的限制,下面看解决办法:
执行命令:

show variables like "%_buffer_pool_size%";  

看下当前的缓冲池字节大小限制是多少,默认的innodb_buffer_pool_size是8388608,
那么就要修改 innodb_buffer_pool_size的值,我修改的是3G。
3G = 3 x 1024 x 1024 x 1024 = 67108864;
执行命令

SET GLOBAL innodb_buffer_pool_size=67108864;

可以再重复第一步的步骤,再查看一下,看下是否修改成功,下来就可以正常处理大批量数据了。

有时候特别长的sql会被截取掉,这个时候就要设置这个参数,
max_allowed_packet
找到配置文件,修改大一点,就可以

SET GLOBAL max_allowed_packet=50 x 1024 x 1024;   这是50M,一般肯定够了

有时候不仅处理大数据表,在使用group_concat时还会遇到很长的列,这个时候也会报错,过长的字符串会被截掉。
下来看处理办法:

show variables like 'group_concat_max_len'

默认一般都是1024,我们改大点

SET SESSION group_concat_max_len = 102400

如果修改后还不生效,就需要手动找到MySQL安装目录下的my.ini文件,配置一个
group_concat_max_len = 102400
就好了,里边都是键值对配置,一看就能明白,然后重启一下MySQL服务,就OK了

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐