tidb 部署失败

tiup deploy失败,密码格式怎么写都不对

2 个赞

感觉tiup是把123当成一个参数了

换个密码,用字母试试 :rofl:

倒是如果不在tiup deploy输入密码,换行后输入密码是可以的

2 个赞

用字母也是会报错shorthand flag

这么奇怪,什么 os ,什么 version ?

不行就手输吧,能用就行

1 个赞

1、密码不用写在-p后面,交互时再输入
2、deploy命令格式写错了,版本号漏了

tiup cluster deploy <cluster-name> <version> <topology.yaml> [flags]
3 个赞

你 -p后面跟着明文的意思是,大家上来history一下都能看到的意思?

就算你要自动填密码,一般的解决方案也是expect.

3 个赞

加版本也不行

centos 7.9 跟版本没关系吧

只是想试下这个用法

2 个赞

tiup deploy -p把密码加在这行,tiup也不会去验证的,只有换行后才会验证密码,产品设计上好像就是这样的

2 个赞

把-p后边的去掉,回车,然后在输入密码试下。

-p 后面不能写密码,回车后输入

有-u 没有写-p肯定不行的

是的 目前测试下来都有报错

写-p 不写后边的密码试下。

额 这不就是一般情况下的部署输入密码方式吗 肯定可以啊

很遗憾,答案就是不可以。

tiup用的命令行框架是cobra。cobra是一个POSIX兼容的命令行框架。

如果按照POSIX兼容的规范,为了避免你的密码123被单独识别为一个参数名称,
也就是不报这个错。
1749999973843

正常的做法是-p=123这样。但实测这样也不行,

image

报错如上,这就很奇怪,说-p这个参数是个bool值。

翻了下代码,

https://github.com/pingcap/tiup/blob/7b34205dc6f9297894aba43442dd64ea4ec79420/pkg/cluster/manager/check.go#L43

这个-p真的是接受一个bool值,代码的处理就是这个UsePassword必须是true,才会进标准输入读取密码的内容。

https://github.com/pingcap/tiup/blob/master/pkg/tui/ssh.go#L37

所以,答案就是你想把密码直接写进一行就是不可以。

我不管别人怎么看,我必须给这块的处理点个赞。
这种垃圾使用习惯就不该纵容。

4 个赞

猫哥强👍🏻

1 个赞