使用TIUP部署时报错

没必要,root装完以后也并不需要你再用root用户了,各个节点的tidb用户和权限都会自动帮你加好

这个命令还是不行,每台服务器都是zj81这个用户。奇怪的是,执行完部署命令,每次的错误报的服务器都是随机的,要么159,要么160,要么162

:thinking:这么说的话,感觉是互信乱了。建议从头按照步骤重做一遍,之前也遇到过,没有深究,重做一遍就可以了。用户用zj81是没问题的,和官方文档用tidb是一样的,把官方文档里的tidb替换成zj81就可以,只要步骤一致就行。

一定要注意每一步操作是使用什么用户哪台服务器进行的操作。
https://docs.pingcap.com/zh/tidb/stable/check-before-deployment#手动配置-ssh-互信及-sudo-免密码

你确定 V7.5 和你目前的系统版本匹配么?

1、每台机子上执行ssh-keygen,生成公钥和密钥,对应目录~/.ssh;
2、每台机子的~/.ssh目录下创建authorized_keys文件;
3、每台机子分别执行cat命令查看对应公钥的内容,将内容放到上面创建的authorized_keys文件里,每台机子的authorized_keys内容应当是一致的吧,都是4行密文(对应4台机子的公钥内容);
4、ssh命令验证互信免密;
感觉步骤没错啊 :joy:

大版本都是Ubuntu 20,我之前装的单机环境的tidb v7.5是没问题的


sudo免密做了吗

:thinking:感觉和文档里的步骤不大一样吧。最好按照文档步骤来,说实话linux这套在接触tidb之前碰都没碰过。

第一步好像就不对,只在中控机执行ssh-keygen,不是每台机器都执行。

其实文档中的ssh-copy-id命令我也用过,它其实就是在目标机上生成authorized_keys文件,并将控制机的公钥copy到目标机上

这篇文章应该可以解决你的问题

另外,密钥有 passphrase 的时候,中控机上需要安装 sshpass

2 个赞

试试系统 ssh, 看上面你设置了 passphrase

麻烦问一下,我看了下文章,意思是中控机的用户必须拥有另外集群机子的sudo权限吗

中控机的用户:

  1. 要能操作 tiup
  2. 要能 ssh 登录目标机器,登录的时候用的远程账户要能免密码 sudo as root 执行命令

没错,目前来看是,中控机没有目标机sudo的权限

嗯,其实是远程用户的权限问题。只不过大部分情况都是 “中控机上操作tiup的账户"跟"远程账户” 名字一致

中控配置就是免密或者不免密,这个是指–user XXX那个用户要不要密码,如果不是root用户,数据库每个节点需要提前要:
1、创建XXX用户
2、给XXX用户sudo免密的,最大权限

至于中控机你用哪个用户安装tiup跑都无所谓

1.拓扑文件中使用非root用户 默认用tidb用户,使用root登录机器,配置root互信。执行tiup cluster deploy时会自动配置tidb的互信。
2.要理解配置互信配置,如果是root的互信 登录用户使用root。拷贝公钥到目标机器上 要使用root@ip ,如果使用非root用户登录的服务器 配置的目标用户要保持一致 比如zj81@ip 。
3.拓扑文件中使用的非tidb用户,使用root用户部署,可能是 zi81没有自动创建互信,需要手动创建互信。如果使用非root用户登录部署,就需要注意文件的权限。
4.检查下 操作系统版本,内核版本。cpu类型是否受限。部署一般有最低版本要求。

用zi81 登录的操作系统,拷贝公钥文件时 要用 zi81@目标ip ,检查方式 ssh zi81@目标ip 是否需要输入密码,如果需要 就是你互信的问题 。 另外,如果有用root创建的文件,可能zj81时权限不足 。需要chmod 加权。

如果操作系统登录用户使用 非root,tiup安装以及后续操作时可能存存在文件权限问题。 登录用户的权限问题。
有权限问题 可以使用root给其加权。其他操作务必使用非root用户。

一般按照官网文档操作很少出错。

root仅在安装用一次,并不是以后一直用,安装脚本会自动帮忙建tidb用户,并给所有需要的权限。安装完成后用tidb用户就行