Cloud SQL Proxy を使用して MySQL クライアントに接続する

ここでは、IP ではなく Cloud SQL Proxy を使用して MySQL クライアントを Google Cloud SQL インスタンスに接続する方法を説明します。

IP を使用して MySQL クライアントを Cloud SQL インスタンスに接続する方法については、IP アドレスを使用して MySQL クライアントを接続するをご覧ください。

プロキシのしくみの詳細については、Cloud SQL Proxy についてをご覧ください。

はじめに

MySQL クライアントを使い始める前に、次のことを行っておく必要があります。

MySQL クライアントを接続する

プロキシで MySQL クライアントを Cloud SQL インスタンスに接続する手順には、次の作業が含まれます。

  1. Cloud SQL API を有効にする
  2. プロキシをインストールする
  3. サービス アカウントを作成する
  4. プロキシを開始する
  5. MySQL セッションを開始する

1. Cloud SQL API を有効にする

  • Cloud SQL Administration API を有効にする。

    Enable the API

    API を有効にすると、認証情報を得る必要はありません。

  • 2. プロキシをインストールする

    Linux 64 ビット

    1. プロキシをダウンロードします。
      wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64
      
    2. プロキシの名前を変更して標準のファイル名を使用します。
      mv cloud_sql_proxy.linux.amd64 cloud_sql_proxy
      
    3. プロキシを実行できるようにします。
      chmod +x cloud_sql_proxy
      

    Linux 32 ビット

    1. プロキシをダウンロードします。
      wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.386
      
    2. プロキシの名前を変更して標準のファイル名を使用します。
      mv cloud_sql_proxy.linux.386 cloud_sql_proxy
      
    3. プロキシを実行できるようにします。
      chmod +x cloud_sql_proxy
      

    OS X 64 ビット

    1. プロキシをダウンロードします。
      curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64
      
    2. プロキシを実行できるようにします。
      chmod +x cloud_sql_proxy
      

    OS X 32 ビット

    1. プロキシをダウンロードします。
      curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.386
      
    2. プロキシを実行できるようにします。
      chmod +x cloud_sql_proxy
      

    Windows 64 ビット

    https://dl.google.com/cloudsql/cloud_sql_proxy_x64.exe を右クリックし、[リンクの保存] を選択してプロキシをダウンロードし、名前を cloud_sql_proxy.exe に変更します。

    Windows 32 ビット

    https://dl.google.com/cloudsql/cloud_sql_proxy_x86.exe を右クリックし、[リンクの保存] を選択してプロキシをダウンロードし、名前を cloud_sql_proxy.exe に変更します。
    ここにオペレーティング システムが含まれていない場合は、プロキシをソースからコンパイルすることもできます。

    3. サービス アカウントを作成する

    プロキシを使用して接続する際、プロキシは Google Cloud Platform によって認証する必要があります。Cloud SDK 認証情報を使用するか、ローカル キーファイルへのパスを作成するサービス アカウントからプロキシに提供することができます(本番稼働インスタンスで推奨)。Cloud SDK 認証情報を使用する場合は、この手順をスキップできます。

    サービス アカウントの詳細については、Google Cloud Platform 認証ガイドをご覧ください。

    1. Google Cloud Platform Console の Cloud SQL の [サービス アカウント] ページに移動します。

      [サービス アカウント] ページに移動する

    2. 必要な場合は、Cloud SQL インスタンスを含むプロジェクトを選択します。
    3. [サービス アカウントを作成] をクリックします。
    4. サービス アカウントの作成ダイアログで、サービス アカウントのわかりやすい名前を指定します。
    5. [役割] で [プロジェクト] > [編集者] を選択します。
    6. 必要に応じて、[サービス アカウント ID] を短い値に変更します。
    7. [新しい秘密鍵の提供] をクリックします。
    8. デフォルトのキーのタイプは [JSON] であり、この値で問題ありません。
    9. [作成] をクリックします。

      秘密鍵ファイルがマシンにダウンロードされます。このファイルは別の場所に移動できます。安全な場所に鍵ファイルを保管してください。

    4. プロキシを開始する

    言語や環境に応じて、TCP ソケットまたは Unix ソケットのどちらかを使用してプロキシを開始できます。Unix ソケットは、Java プログラミング言語で書かれたアプリケーションや Windows 環境ではサポートされていません。

    TCP ソケット

    1. [インスタンスの詳細] ページからインスタンス接続名をコピーします。
    2. サービス アカウントを使用してプロキシを認証する場合は、サービス アカウントを作成したときに作成された秘密鍵ファイルのクライアント マシン上での場所を記録しておきます。
    3. プロキシを開始します。

      考えられるプロキシ呼び出し文字列を以下にいくつか示します。

      • Cloud SDK 認証を使用する場合:
        ./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:3306
      • サービス アカウントと明示的なインスタンス指定を使用する場合(本番環境で推奨):
        ./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:3306 \
                          -credential_file=<PATH_TO_KEY_FILE> &

      プロキシのオプションに関する詳細については、プロキシを認証するためのオプションインスタンスを指定するためのオプションをご覧ください。

    Unix ソケット

    1. 明示的なインスタンス指定を使用する場合は、インスタンス接続名を [インスタンスの詳細] ページからコピーします。
    2. プロキシ ソケットを格納するディレクトリを作成します。
      sudo mkdir /cloudsql; sudo chmod 777 /cloudsql
    3. サービス アカウントを使用してプロキシを認証する場合は、サービス アカウントを作成したときに作成された秘密鍵ファイルのクライアント マシン上での場所を記録しておきます。
    4. 新しいターミナル ウィンドウを開き、プロキシを開始します。

      考えられるプロキシ呼び出し文字列を以下にいくつか示します。

      • サービス アカウントと明示的なインスタンス指定を使用する場合(本番環境で推奨):
        ./cloud_sql_proxy -dir=/cloudsql -instances=<INSTANCE_CONNECTION_NAME> \
                          -credential_file=<PATH_TO_KEY_FILE> &
      • Cloud SDK 認証と自動インスタンス検出を使用する場合:
        ./cloud_sql_proxy -dir=/cloudsql &

      専用のターミナルでプロキシを開始することが最善です。この場合、他のプログラムからの出力と混ざることなく出力を監視できます。

      プロキシのオプションに関する詳細については、プロキシを認証するためのオプションインスタンスを指定するためのオプションをご覧ください。

    5. MySQL セッションを開始する

    プロキシをインストールして開始したので、このプロキシを使用して MySQL セッションを開始できます。MySQL クライアントで Cloud SQL インスタンスに接続するときは常に、このコマンドを使用できます。

    使用する接続文字列は、プロキシの開始時に TCP ソケットを使用したか Unix ソケットを使用したかによって異なります。

    TCP ソケット

    1. MySQL クライアントを開始します。
      mysql -u <USERNAME> -p --host 127.0.0.1
      
      TCP ソケットを使用して接続する場合、プロキシには 127.0.0.1 経由でアクセスします。
    2. パスワードを入力します。
    3. インスタンスでデータベースの一覧を表示して、接続を確認します。
      mysql> show databases;
      +--------------------+
      | Database           |
      +--------------------+
      | information_schema |
      | mysql              |
      | performance_schema |
      +--------------------+
      

    Unix ソケット

    1. MySQL クライアントを開始します。
      mysql -u <USERNAME> -p -S /cloudsql/<INSTANCE_CONNECTION_NAME>
      
    2. パスワードを入力します。
    3. インスタンスでデータベースの一覧を表示して、接続を確認します。
      mysql> show databases;
      +--------------------+
      | Database           |
      +--------------------+
      | information_schema |
      | mysql              |
      | performance_schema |
      +--------------------+
      

    次のステップ

    フィードバックを送信...

    Cloud SQL ドキュメント