【 TiDB 使用环境】生产环境
【 TiDB 版本】8.0.11-TiDB-v8.1.0
【遇到的问题:问题现象及影响】
执行下面的语句创建索引:
create index inx_name
on t (name)
comment '名称索引';
执行失败,报错:
mkdir /tmp/tidb/tmp_ddl-4000/138741: no such file or directory.
【 TiDB 使用环境】生产环境
【 TiDB 版本】8.0.11-TiDB-v8.1.0
【遇到的问题:问题现象及影响】
执行下面的语句创建索引:
create index inx_name
on t (name)
comment '名称索引';
执行失败,报错:
mkdir /tmp/tidb/tmp_ddl-4000/138741: no such file or directory.
看看对应tidb 下面
/tmp/tidb/tmp_ddl-4000
这个目录是否存在,用tidb进程的启动用户进这个目录看看权限对不对。
这个在7.1的低版本上出现过,是个bug。但是7.1的高子版本上应该是已经修复了的。看你的版本是8.1不应该会有这个问题才对。
在每个tidb的节点上,创建目录 mkdir -p /tmp/tidb/tmp_ddl-4000
好的,正常情况下这个目录不应该手动创建吧?
正常情况不需要的
你是升级升上来的?正常创建集群的时候默认会创建的。
看你这个是从8.0.11升级到8.1后出现的问题吗?
看一下报错目录的权限是不是TiDB用户,不是的话需要chown授权一下。
1、确认以下目录是否存在
sudo ls -ld /tmp/tidb/tmp_ddl-4000/138741
2、如果不存在,或者权限不是tidb的安装用户和组,则执行以下步骤:
sudo mkdir -p /tmp/tidb/tmp_ddl-4000/138741
sudo chown -R tidb安装用户:tidb安装组 /tmp/tidb
3、然后再看看创建索引是否可以了
目录问题,在tidb服务器各节点上分别创建如下 ,并授权
/tmp/tidb/tmp_ddl-4000