参照官网将采用docker-compose.yml方式搭建好测试环境的TiDB,
参考链接:https://www.pingcap.com/docs-cn/op-guide/docker-compose/
下一步将数据导入,
因为数据量较大,导入的时候报错:
百度查找解决方案,为该参数默认配置为5000条,
参考链接:https://github.com/pingcap/tidb/issues/6042
https://pingcap.com/docs-cn/op-guide/tidb-config-file/
stmt-count-limit
- TiDB 一个事务允许的最大语句条数限制。
- 默认: 5000
- 在一个事务中,超过
stmt-count-limit
条语句后还没有 rollback 或者 commit,TiDB 将会返回statement count 5001 exceeds the transaction limitation, autocommit = false
错误。
需要修改Tidb-server的配置文件,进入容器查看,为根目录下,
但该文件权限无法修改,使用chmod报错:read-only file system
检查docker-compose.yml文件,为该文件是映射出来,将物理服务器上的文件进行修改,将stmt-count-limit修改为50000000,将Tidb-server服务重启后,配置正常修改了
- 选择增大 tidb 的单个事物语句数量限制,不过这个会导致内存上涨。
再次导入数据,仍然报错:
查找问题原因,需要修改Tidb配置,让其自动分片导入
参考链接:
https://blog.csdn.net/vkingnew/article/details/82789190
修改配置后重新导入,仍存在问题,尝试将tidb服务重启
mysql> set @@session.tidb_batch_insert=1;
Query OK, 0 rows affected (0.00 sec)
查询原因,为该变量仅在当前连接中生效,后连接到mysql上,使用source进行导入
导入1.3G文件,用了12小时,后查询官方网站,有现成工具:Loader
https://pingcap.com/docs-cn/tools/loader/
使用该工具进行导入。
*教训:看官方文档说明 0.0