Google Cloud SQL代理无法找到默认凭据

sta*_*af1 17 google-cloud-sql google-cloud-platform google-cloud-sdk

我正试图在本地运行Google Cloud SQL代理,如下所示:

$ ./cloud_sql_proxy -instances project-name:region-name:instance-id tcp:3306
Run Code Online (Sandbox Code Playgroud)

但它正在回归

google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for mor information.
Run Code Online (Sandbox Code Playgroud)

我的Google Cloud SDK已经安装并登录到Google.

我该如何解决?

NBa*_*nca 41

两个问题可能会产生您的问题.

要查找登录内容,请使用:

gcloud auth login
Run Code Online (Sandbox Code Playgroud)

1.您没有应用程序默认凭据

如果您有最新版本的gcloud,您将获得:

WARNING: `gcloud auth login` no longer writes application default credentials.
Run Code Online (Sandbox Code Playgroud)

要使本地应用程序使用您需要执行的凭据(参考):

gcloud auth application-default login
Run Code Online (Sandbox Code Playgroud)

如果您没有看到此警告,请考虑使用以下命令更新gcloud:

gcloud components update
Run Code Online (Sandbox Code Playgroud)

2.您尚未定义项目

登录后,您应该看到:

Your current project is [project-id].
Run Code Online (Sandbox Code Playgroud)

再一次两个解决方案:

一个.关联项目

如果你没有看到这个,做(参考):

gcloud config set project PROJECT_ID
Run Code Online (Sandbox Code Playgroud)

--project在通话中使用全局标志

在您的命令中关联项目:

.\cloud_sql_proxy -instances=project-id:region-name:instance-id=tcp:3306 --project=project-id
Run Code Online (Sandbox Code Playgroud)


che*_*rba 9

Google应用程序默认凭据与gcloud凭据分开管理.

使用

gcloud auth application-default login
Run Code Online (Sandbox Code Playgroud)

而是将您的用户凭据设置为应用程序默认值.有关详细信息,请参阅参考

以前gcloud auth login这样做过,但是最新的Cloud SDK版本已经不再适用了.

请注意,切换gcloud配置或设置帐户不会更新应用程序默认凭据.只有命令gcloud auth application-default可用于管理这些命令.

另外,要将服务帐户用作应用程序默认凭据,您可以通过从开发人员控制台下载其json密钥来直接使用它.