非交互性执行Google Cloud SQL查询



我正在编写一个脚本来使用 gcloud sdk来编排Google Cloud SQL实例。

SDK具有a connect 命令,该命令获取用户名,但必须在提示符下输入密码 - IE不能以参数传递。

成功身份验证然后允许执行查询 - 流程如下:

$ gcloud sql connect instance-name --user=root
Whitelisting your IP for incoming connection for 5 minutes...done.
Connecting to database with SQL user [root].Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MySQL connection id is 8054
Server version: 5.7.14-google-log (Google)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
MySQL [(none)]> USE tablename;

我需要非交互。我尝试了:

gcloud sql connect instance-name --user=root && echo "password" && echo "USE tablename;"

,但它仅执行第一个命令。

如何连接,身份验证&在一个命令中运行查询?

更新:

根据@Danlor链接到这个问题的评论,我尝试了这两者:

yes password | gcloud...

printf 'passwordn' | gcloud...

,但两者仍然提示密码。

看起来不像gcloud sql connect命令使您能够将execute标志传递到MySQL命令行实用程序。我建议使用云SQL代理。您的脚本可能看起来如下:

./cloud_sql_proxy -dir=/cloudsql -instances=<INSTANCE_CONNECTION_NAME> &
PID=$!
mysql -u root --password "YOUR-PASSWORD" -S /cloudsql/<INSTANCE_CONNECTION_NAME> --execute "USE tablename;"
kill $PID

相关内容

  • 没有找到相关文章

最新更新