FFFT

主にwebプロダクト開発に関連する話をつらつらと

GCPのCloud SQLにlocalのSQLクライアントから接続

GCPのアカウントで認証してproxy経由で接続させます。

gcloudコマンドを使うのでインストールしてない方はこちらを参考に。
GCPのgcloudコマンドを公式に沿ってインストール - FFFT


Cloud SQL Admin APIを利用するプロジェクトで有効にします。
Google Cloud Platform

次にCloud SQL Proxyをダウンロードします。

下記はMac OS 64ビットの場合の例。
該当しない人はこちらから自分に合ったものを確認してください。
Cloud SQL Proxy を使用して MySQL クライアントを接続する  |  Cloud SQL for MySQL  |  Google Cloud

curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64

プロキシに実行権限を追加します。

chmod +x cloud_sql_proxy

GCPのアカウントでdefault credentialを設定します。

gcloud auth application-default login

認証用のURLが生成されるのでブラウザからアクセスしましょう。
認証するとキーが生成されるのでターミナルに戻ってキーを入力すれば完了です。
余談ですがdefault credentialの設定にGCPのアカウント認証をするのはなんか違和感。通常のgcloudの認証で十分じゃないかなと思ったり。

プロキシを起動させます。

./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:[PORT_NUMBER]

INSTANCE_CONNECTION_NAMEはGCPの対象のインスタンスのページの「インスタンス接続名」から確認できます。
PORT_NUMBERはlocalですでにmysqlを動かしていたりdocker経由で3306を利用しているとバッティングしちゃうので当たらないように適当なポートを指定しましょう。

これでおっけー。

接続確認。

mysql -u [USERNAME] -p --host 127.0.0.1 -P [PORT_NOMBER]

パスワードを入力して接続できたら終わり。

ちなみにさっとCloud SQLの中身を見たいときはCloud Shellを使うのが楽です。
GCPの対象のインスタンスのページから「Cloud Shellを使用して接続」をクリックするとコマンドが組まれた状態でシェルが起動します。

自分はSequel Proを使いたかったので紹介した手順で接続させました。