重新安装tidb后 大事务 又不支持了,重新reload也不生效

v 4.0.7
我之前配置过大事务,当时生效了,后来我重新安装了tidb,在配置文件里配置了支持大事务的相关参数。


也reload了,但是我现在使用jdbc批处理向tidb插入数据,50w条一批,就报错了,显示事务过大,超过60M的默认值了。可以我已经在配置文件里面配置事务大小为小于10G了,而且已经reload了

这是上次解决大事务问题的帖子

1 个赞

从报错信息中来看是客户端的数据包太大,超过系统参数 max_allowed_packet 的限制了,可在 tidb 中执行下面的命令将参数值调大,然后再重试下:

set @@global.max_allowed_packet=xxxx ;

你好,我设置了这个参数,但是好像没生效呢,传输几百万行的数据还是会报错。
image
是不是在mysql 客户端,比如navicate设置的这个参数,无法应用到TiDB?

修改 global 参数, 需要断开链接该参数的查询才会刷新, 辛苦操作下.

1 个赞

请问是断开比如navicat到TiDB的链接吗?
我刚才设置完max_allowed_packet之后,断开连接,然后重新连接,但是好像没生效呢,是不是我哪里操作的不对?
image

image
有没有可能是设置的太大了?

我这边在 navicat 和 mysql 本地客户端中设置都是没有问题的,麻烦再检查下客户端设置:
image

1 个赞

好的,谢谢。
这次我用shell里面的mysql客户端执行的,是可以的。
image

image
重新连接之后生效了。

还想请教个问题,就是set @@global.max_allowed_packet=这种方式设置的值,是仅针对本次TiDB启动生效。下次如果将TiDB集群重启,就会失效,然后需要重新设置是吧

global 参数在设置成功后会持久化到 tikv, tikv 重启不会对该值有影响,

PS: 如果系统变量有对应的配置文件配置文件参数可配置, 建议使用配置文件参数进行参数管理.

好的,谢谢

:+1:

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。