Navicat 运行sql文件 报错transaction too large

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:3.0.8
  • 【问题描述】: 1、用Navicat导数据 导入大概9万多条数据 一直报 transaction too large, len:300001 这个错误; 2、我网上看的列子AskTuG 里面看了好多列子 都试过了 还是不行: 列子: stmt-count-limit tidb_batch_insert tidb_dml_batch_size 上面这几个参数都试着调试了 都不行 还是运行的时候 报错
  1. 确认一下 enable-batch-dml 这个参数值是什么,如果是 false 表示不支持 batch dml 操作
  2. 关于 stmt-count-limit 不生效的问题可以参考一下这个提问

https://asktug.com/t/topic/32912/11

  1. 另外官方目前不建议使用 batch dml 进行操作,生产环境禁止使用这个

请问一下enable-batch-dml 在什么位置 我找了半天没有找到?

可以参考一下这个帖子

我的用是是3.08确实没有这个文件:{deploy_path}/conf/tidb.yoml 另外:请问一下 按照客户端导入sql脚本的话 1、肯定是一条一条执行的 2、事物是自动提交的 按理说应该能执行过去 为什么还报这个错误;有点不明白 请您指点一下

是 deploy的目录,不是 tidb-ansible 的目录,如果 deploy 目录下没有这个文件,tidb 应该不能正常启动的

可以手动执行单条 sql 脚本中的记录,看下是否也会报这个错误

确定一下{deploy_path}/conf/tidb.yoml 还是 {deploy_path}/conf/tidb.toml
如果是tidb.toml 这是我的文件 tidb.toml (1.5 KB)

是 tidb.toml 文件

是往tidb.toml文件里面增加一条是吧? 增加一条的话 增加到什么位置?

在最开始添加即可,这个参数是全局的

好的 谢谢

对了我刚试了 手动执行 没有错误

那可以试下 source xx.sql 文件的方式导入数据,可能是 Navicate 导入数据的时候设置了某些参数