索引创建报错

【TiDB 使用环境】生产环境
【TiDB 版本】v8.1.1
【报错内容】mkdir /tmp/tidb/tmp_ddl-4000/2865: no such file or directory
【解决方式】:在每个tidb节点创建了目录 mkdir -p /tmp/tidb/tmp_ddl-4000,重新执行添加索引成功
【当前的问题】后续添加索引仍然会报这个错误,创建的目录没了。等于我每次加索引,都要先创建目录

目录的权限没给吧,自动创建不出来

1 个赞

mkdir -p /tmp/tidb 试试

大概率是有别的清理脚本,进tmp下面把对应的目录清理掉了。建议mkdir以后,把owner和权限都设置好,让别的用户不能删这个目录就应该可以了。

确认执行 TiDB 进程的用户对 /tmp/tidb 目录具有写权限,并且能够在其下创建子目录?

换个目录试试呢

请问这个最后是如何处理的,我也遇到这个问题了,我是欧拉系统,每次重启后 这个目录就会被自动清除,能否将这个配置路径指定到别的目录下呢

是不是权限不对,换个目录测试下呢

看上去像是权限问题

  1. 创建必要的目录

    mkdir -p /tmp/tidb/tmp_ddl-4000
    chmod 755 /tmp/tidb/tmp_ddl-4000
    
  2. 配置 TiDB 临时目录

    # tidb.toml
    [performance]
    temp-dir = "/data/tidb/tmp"
    
  3. 使用持久化目录

    mkdir -p /data/tidb/tmp_ddl
    chown tidb:tidb /data/tidb/tmp_ddl
    
    
    
  • 确保临时目录配置在持久化存储上
  • 检查 TiDB 启动用户对目录的权限
  • 避免使用 /tmp 目录(系统重启可能清空)

目录被其他人删除了吧

是不是有清理/tmp目录的任务在运行