指定连接gcloud sql的数据库

37
当连接到Google Cloud SQL实例时,是否有一种方法可以指定要连接的数据库?
这是我执行的命令和收到的错误:
$ gcloud beta sql connect MY_INSTANCE --user=MY_USER
Whitelisting your IP for incoming connection for 5 minutes...done.
Connecting to database with SQL user [MY_USER].Password for user MY_USER:
psql: FATAL:  database "MY_USER" does not exist

似乎尝试连接与用户同名的数据库,但如果不是这种情况怎么办?(我不想创建一个名为MY_USER的虚拟数据库,只是为了能够跳转到我想要的数据库)。
这里是gcloud beta sql命令的文档,但我在那里没有看到任何有用的内容:https://cloud.google.com/sdk/gcloud/reference/beta/sql/connect

疯了,你3年前就问了这个问题...我今天才发现它。考虑到 gcloud sql connect --help 显示 --database 参数,但它只是忽略它...这是一个超级奇怪的问题。 - greatvovan
2个回答

57

gcloud sql connect目前不支持指定数据库名称。有一个未解决的问题需要添加它:https://issuetracker.google.com/issues/69314375

同时,你可以通过使用PGDATABASE环境变量来解决这个问题:

例如:

PGDATABASE=mydb gcloud sql connect myinstance

您可以创建一个 shell 别名来为您执行此操作。


能否仅从Bash脚本中执行SQL语句?而不是获取交互式shell? - lisak
gcloud sql connect 现在接受一个 --database 标志,您可以在其中指定要连接的数据库。 - dmbarreiro
gcloud sql connect --database 是合法语法,但自 307.0.0 起该选项被忽略。不过,这个解决方案(使用 PGDATABASE 环境变量)仍然有效。 - Chris Jones
(1) 有没有办法让它跳过密码提示? (2) 有没有办法让它执行一个脚本? - Konstantin Tarkus

12

对我来说仍然失败。我尝试了"gcloud beta"和常规gcloud两种方式。默认情况下,它期望用户和数据库应具有相同的名称。=( - Daniel Nelson
1
截至目前(2020年3月),提到的标志“--database”在“gcloud beta”(2019.05.17)版本中按预期工作,但尚未在常规SDK(283.0.0)中实现。 - vreyespue
这仍然不起作用(如果不支持,为什么要有--database标志?) - gvanto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接