在连接到gcloud SQL实例时,我希望在单个语句中传递密码和用户id。我该怎么做?我尝试了几个组合,但没有得到任何解决方案。
例如:
gcloud sql connect scegold2-f44e-mysql --user=username --password=password --quiet它显示密码附近的错误。
我能得到任何帮助和指导。我做错什么了吗?
发布于 2019-11-21 12:40:47
正如在文档中提到的,"gcloud sql connect"命令的标志是:
--user=USER, -u USER基于此,您不能在同一命令行中指定密码,即使通过指定“无密码”创建实例,它也将向您询问密码(在这种情况下,您只应按enter键)。
发布于 2019-11-25 11:53:17
可以使用expect程序将每个参数一次传递给gcloud sql connect,包括密码,例如使用这个autoconnect.exp脚本:
#!/usr/bin/expect -f
# Call command with "expect autoconnect.exp $INSTANCE $USER $PASSWORD",
# or place the arguments literally in the script, where the variables are.
set INSTANCE [lindex $argv 0]
set USER [lindex $argv 1]
set PASSWORD [lindex $argv 2]
set timeout -1
spawn gcloud sql connect $INSTANCE --user=$USER
expect "*Password*"
send -- "$PASSWORD\r"
expect eof这样做是等待gcloud命令提示输入密码(expect "*Password*"的意思是等待包含“密码”的行),然后将密码提供给它,然后正常打开数据库管理系统。
expect 这里的一个很好的向导。
https://stackoverflow.com/questions/58972980
复制相似问题