Search code examples
google-cloud-platformgoogle-cloud-sqlgoogle-cloud-sdk

Google Cloud SQL proxy couldn't find default credentials


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?


Solution

  • 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