指定连接gcloud MySQL的密码



我想在连接到gcloud SQL实例时,在单个语句中传递密码和用户id。我该怎么做?我尝试了几种组合,但没有找到任何解决方案。

例如:

gcloud sql connect scegold2-f44e-mysql --user=username --password=password --quiet

显示密码错误。

我可以得到任何帮助和指导。我做错什么了吗?

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 -- "$PASSWORDr"
expect eof

这样做的目的是等待gcloud命令提示输入密码(expect "*Password*"的意思是等待包含"密码">的行(,然后向其输入密码,然后数据库管理系统正常打开。

这里有一个很好的expect指南。

如文档中所述,"gcloud sql connect"命令的标志为:

--user=USER, -u USER

基于此,您不能在同一命令行中指定密码,即使您通过指定"无密码"创建实例,它也会要求您输入密码(在这种情况下,您只应按enter键(。

最新更新