Google Cloud SQL proxy couldn't find default credentials

starleaf1 picture starleaf1 · Dec 19, 2016 · Viewed 9.2k times · Source

I'm trying to run Google Cloud SQL proxy locally like this:

$ ./cloud_sql_proxy -instances project-name:region-name:instance-id tcp:3306

But it's returning

google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for mor information.

My Google Cloud SDK is already installed and logged in to Google.

How do I fix this?

Answer

NBajanca picture NBajanca · Feb 5, 2017

Two problems may be generating your problem.

To find what is login, using:

gcloud auth login

1. You haven't application default credentials

If you have a recent version of gcloud you will get:

WARNING: `gcloud auth login` no longer writes application default credentials.

To make your local application use your credentials you need to do (ref):

gcloud auth application-default login

If you don't see this warning consider updating gcloud, with:

gcloud components update

2. You haven't defined your project

After login, you should see:

Your current project is [project-id].

Once again two solutions:

a. Associate a project

If you are not seeing this, do (ref):

gcloud config set project PROJECT_ID

b. Use global --project flag in the call

In your command associate a project:

.\cloud_sql_proxy -instances=project-id:region-name:instance-id=tcp:3306 --project=project-id