tiup mirror merge

执行tiup mirror merge tidb-server 目录 报错
Error: lstat /home/tidb/.tiup/keys: no such file or directory
请问下需要怎么解决?

官方文档说的下面这两点是什么意思?

  • 目标镜像的所有组件的管理员 ID 必须在当前镜像中存在。
  • 执行该命令用户的 ${TIUP_HOME}/keys 目录中有上述管理员 ID 在当前镜像中对应的所有私钥(可以使用命令 tiup mirror set 将当前镜像切换成目前有权限修改的镜像)。

管理员ID是什么意思

cd tidb-community-server-${version}-linux-amd64/
cp -rp keys ~/.tiup/

tiup mirror merge报错 参考这个,应该是keys没了

参考下离线部署的文档
https://docs.pingcap.com/zh/tidb/stable/production-deployment-using-tiup#离线部署

这里有点疑问,假设我现在的tiup mirror 是tidb-community-server-v4.0.15-linux-amd64
[tidb@mysql05 tidb-community-server-v4.0.15-linux-amd64]$ tiup mirror show
/home/tidb/tidb-community-server-v4.0.15-linux-amd64
我想把tidb-community-server-v5.4.0-linux-amd64 合并到tidb-community-server-v4.0.15,为什么不是tidb-community-server-v5.4.0-linux-amd64的keys 拷贝到/home/tidb/.tiup 里面呢
而是需要把tidb-community-server-v4.0.15-linux-amd64的keys 拷贝到/home/tidb/.tiup 里面呢?
到底谁才是目标镜像,按照我的理解,tidb-community-server-v5.4.0才是目标镜像吧

[tidb@mysql05 ~]$ tiup mirror show
/home/tidb/tidb-community-server-v4.0.15-linux-amd64
[tidb@mysql05 ~]$ cp -r tidb-community-server-v5.4.0-linux-amd64/keys/ /home/tidb/.tiup/
[tidb@mysql05 ~]$ tiup merge tidb-community-server-v5.4.0-linux-amd64
The component merge version is not installed; downloading from repository.
The component merge not found (may be deleted from repository); skipped
Failed to start component merge
Error: use tiup install merge to install component merge first: component not installed
把/home/tidb/tidb-community-server-v5.4.0-linux-amd64/keys/ 拷贝到/home/tidb/.tiup 里面 也不行

[tidb@mysql05 ~]$ cp -r tidb-community-server-v4.0.15-linux-amd64/keys/ /home/tidb/.tiup/
[tidb@mysql05 ~]$ tiup mirror merge tidb-community-server-v5.4.0-linux-amd64
成功
tidb-community-server-v4.0.15-linux-amd64的keys 拷贝到/home/tidb/.tiup 就可以了

请问 有组件的管理员 ID是啥意思呢

有点分不清谁是目标镜像

你发的文档里有写,拷贝的是当前镜像中对应的私钥。然后tiup mirror merge 目标镜像目录

请问下:

执行该命令用户的 ${TIUP_HOME}/keys 目录中有上述管理员 ID 在当前镜像中对应的所有私钥------>管理员ID是什么意思?
而且 * 目标镜像的所有组件的管理员 ID 必须在当前镜像中存在。 这句话是什么意思,我给的例子当中目标镜像应该是tidb-community-server-v5.4.0-linux-amd64吧

tiup mirror genkey
tiup mirror grant
可以结合这两个命令的文档看下
https://docs.pingcap.com/zh/tidb/stable/tiup-command-mirror-genkey
https://docs.pingcap.com/zh/tidb/stable/tiup-command-mirror-grant#输出

好的,我去研究下,先请问下老师,我当前的mirror 是/home/tidb/tidb-community-server-v4.0.15-linux-amd64,想把 /home/tidb/tidb-community-server-v5.4.0-linux-amd64 merge 进来,我的操作步骤是正确的吧,我看执行命令没有报错?
[tidb@mysql05 ~]$ tiup mirror show
/home/tidb/tidb-community-server-v4.0.15-linux-amd64
[tidb@mysql05 ~]$ cp -r /home/tidb/tidb-community-server-v4.0.15-linux-amd64/keys/ -r /home/tidb/.tiup/
[tidb@mysql05 ~]$ tiup mirror merge /home/tidb/tidb-community-server-v5.4.0-linux-amd64
[tidb@mysql05 ~]$ tiup mirror show

正确的,用tiup list加组件名可以看到镜像中可用的组件版本,merge成功的话可以看到新合并的版本。

好的,谢谢老师

感觉4.0版本是不是有点低了,至少升级到5.0版本吧

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