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

MySQL コマンドライン クライアントは、Cloud SQL への接続に使用できます。このページでは、mysql クライアントを Cloud SQL インスタンスに接続する方法について説明します。ここで説明するのは、同クライアントを、クライアント マシンでローカルに実行する場合、Compute Engine VM で実行する場合、Cloud Shell で実行する場合についてです。

始める前に

mysql クライアントを使用して Cloud SQL インスタンスに接続する前に、次のことを行います。

ローカルマシンや Compute Engine VM で MySQL クライアントを使用する

mysql クライアントを使用して Cloud SQL インスタンスに接続するには、大きく分けて 3 つのタスクを行います。

  1. クライアントをインストールします
  2. Cloud SQL インスタンスへのアクセスを構成します
  3. Cloud SQL インスタンスに接続します

クライアントをインストールする

mysql クライアントをインストールするには、次のことを行います。

  1. プラットフォーム向けの MySQL Community Server を MySQL Community Server ダウンロード ページからダウンロードします。
    Community Server に MySQL クライアントが含まれています。
  2. ダウンロード ページの指示に沿って、Community Server をインストールします。

MySQL のインストールの詳細については、MySQL のインストールとアップグレードをご覧ください。

Cloud SQL インスタンスへのアクセスを構成する

インスタンスへのアクセスを構成するには、以下の操作を行います。

  1. クライアント マシンまたは Compute Engine VM インスタンスで、What's my IP を使用して、クライアント マシンの IP アドレスを確認します。
  2. その IP アドレスをコピーします。
  3. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  4. インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
  5. SQL ナビゲーション メニューから [接続] を選択します。
  6. [ネットワーキング] タブを選択します。
  7. [承認済みネットワーク] セクションで、[ネットワークを追加] をクリックし、クライアントがインストールされているマシンの IP アドレスを入力します。
  8. [完了] をクリックし、ページの下部にある [保存] をクリックして変更内容を保存します。
  9. インスタンスに接続します。SSL / TLS を使用して接続しても、暗号化なし(SSL / TLS を使用しない)で接続してもかまいません。

暗号化しないで Cloud SQL インスタンスに接続する

暗号化なしで接続するには、インスタンスの SSL モードALLOW_UNENCRYPTED_AND_ENCRYPTED に設定されている必要があります。Google Cloud コンソールで、これに相当する構成は「暗号化されていないネットワーク トラフィックを許可する」です。

インスタンスの SSL / TLS 構成の詳細については、SSL / TLS 証明書の構成をご覧ください。

インスタンスに接続するには:

  1. クライアントをインストールし、インスタンスへのアクセスを構成したことを確認します。
  2. mysql クライアントを起動します。
    mysql --ssl-mode=DISABLED --host=INSTANCE_IP_ADDRESS --user=root --password
  3. パスワードを入力します。
  4. mysql プロンプトが表示されます。

SSL / TLS を使用して Cloud SQL インスタンスに接続する

SSL / TLS と組み込み認証を使用してインスタンスに接続するには:

開始する前に、クライアントのインストールインスタンスへのアクセスの構成が完了していることを確認します。

  1. mysql クライアントを起動します。
    mysql --ssl-mode=REQUIRED \
       --host=INSTANCE_IP_ADDRESS \
       --user=root --password
  2. パスワードを入力します。
  3. この接続で SSL / TLS が使用されていることを確認するために、MySQL のプロンプトで \s コマンドを入力します。
  4. 出力行で SSL: を探します。
    ...
    SSL:                     Cipher in use is DHE-RSA-AES256-SHA
    ...
    

    接続の問題のトラブルシューティングについては、接続の問題をデバッグするをご覧ください。

SSL / TLS とクライアント証明書の検証を使用して Cloud SQL インスタンスに接続する

Cloud SQL インスタンスの ssl_modeTRUSTED_CLIENT_CERTIFICATE_REQUIRED に構成されている場合は、ログイン時に検証済みのクライアントの身元を提供することも必要です。

SSL / TLS 証明書をクライアント検証とともに使用して接続するには、次のものが必要です。

  • client-cert.pem ファイル内のクライアントの公開鍵証明書。
  • client-key.pem ファイル内のクライアントの秘密鍵。

また、クライアントが相互認証のためにサーバーの身元を確認できるようにするために、サーバー証明書 server-ca.pem を指定します。

たとえば、mysql クライアントを起動するには、次のコマンドを実行します。
    mysql --ssl-mode=VERIFY_CA \
      --ssl-ca=server-ca.pem \
      --ssl-cert=client-cert.pem \
      --ssl-key=client-key.pem \
      --host=INSTANCE_IP_ADDRESS \
      --user=root --password
   

クライアント証明書と、対応する秘密鍵がない場合は、新しいクライアント証明書を作成してください。

Cloud Shell でクライアントを使用する

Cloud SQL インスタンスに接続するには(パブリック IP のみ):

  1. Google Cloud コンソールに移動します。

    Google Cloud コンソールに移動

  2. ツールバーの右側にある Cloud Shell アイコン をクリックします。

    Cloud Shell の初期化には少し時間がかかります。

  3. Cloud Shell プロンプトで、組み込みのクライアントを使用して Cloud SQL インスタンスに接続します。
    gcloud sql connect INSTANCE_ID \
    --user=root
  4. パスワードを入力します。

gcloud sql connect コマンドは、プライベート IP または SSL / TLS を使用した Cloud SQL インスタンスへの接続をサポートしていません。暗号化を使用して接続するには、Cloud Shell でプロキシをインストールして使用します。

  1. /home/USER ディレクトリにプロキシ(Linux 64 ビット)をインストールします。
  2. gcloud CLI 認証を使用してプロキシを開始します。

    ./cloud-sql-proxy INSTANCE_CONNECTION_NAME &

  3. TCP 接続を使用してデータベースに接続します。

    mysql -u USERNAME -p --host=127.0.0.1

次のステップ

使ってみる

Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Cloud SQL のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。

Cloud SQL の無料トライアル