MySQL クライアントを Compute Engine から接続する

このページでは、Google Compute Engine インスタンスにインストールされた MySQL クライアントの使用方法と標準 MySQL ワイヤ プロトコルを使用した Google Cloud SQL への接続方法について説明します。

第 1 世代インスタンスに接続する場合は、接続に IPv4 アドレスを使用する必要があります。詳細
第 2 世代インスタンスに接続する場合は、Cloud SQL Proxy またはプロキシ Docker イメージを使用して接続することもできます。
Cloud SQL Proxy の使用に関する詳細については、Cloud SQL Proxy を使用して MySQL クライアントを接続するをご覧ください。
Cloud SQL Proxy Docker イメージの使用に関する詳細については、Cloud SQL Proxy Docker イメージを使用して MySQL クライアントを接続するをご覧ください。

始める前に

Cloud SQL インスタンスに接続する前に、インスタンスに MySQL ユーザーを作成しておく必要があります。事前設定された 'root'@'%" ユーザーを使用できますが、パスワードを設定してユーザー アカウントを有効にする必要があります。

Compute Engine インスタンスを設定するための手順は、このタスクに含まれていません。Compute Engine インスタンスの作成や設定に関するサポートが必要な場合は、Compute Engine のドキュメントをご覧ください。

IP アドレスを使用して接続する

  1. Compute Engine インスタンスに静的 IPv4 IP アドレスがない場合は、追加します。
    IPv6 を使用して Google Compute Engine に接続することはできません。静的 IP アドレスの詳細については、Compute Engine ドキュメントの新しい静的外部 IP アドレスの予約をご覧ください。
  2. Compute Engine インスタンスの静的 IP アドレスを、Cloud SQL インスタンスに接続できるネットワークとして承認します。
    詳しくは、IP 接続のアクセスを設定するをご覧ください。
  3. インスタンスに設定したオペレーティング システムに応じ、適切な手順を使用して Compute Engine インスタンスへの端末接続を開きます。
  4. Compute Engine インスタンスが RHEL または CentOS 公開イメージを実行する場合、SELinux によりプロキシ接続がブロックされることがあります。これが発生した場合、SELinux 機能を設定して接続が許可されるようにする必要があります。
    RHEL の SELinux に関する詳細については、RHEL ドキュメントをご覧ください。
    CentOS の SELinux に関する詳細については、CentOS ドキュメントをご覧ください。
  5. まだ MySQL クライアントが Compute Engine インスタンスにインストールされていない場合は、インストールします。

    Debian / Ubuntu

    MySQL クライアントをパッケージ マネージャから次のようにインストールします。

    sudo apt-get update
    sudo apt-get install mysql-client
    

    CentOS / RHEL

    MySQL クライアントをパッケージ マネージャから次のようにインストールします。

    sudo yum install mysql
    

    openSUSE

    MySQL クライアントをパッケージ マネージャから次のようにインストールします。

    sudo zypper install mysql-client
    

    他のプラットフォーム

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

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

  6. MySQL クライアントと接続します。
    mysql --host=[INSTANCE_IP_ADDR] --user=root --password

    SSL を使用する接続方法の例の詳細については、MySQL クライアントと SSL を使用する接続をご覧ください。

  7. インスタンスでデータベースの一覧を表示して、接続を確認します。
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    +--------------------+
    
  8. 第 1 世代インスタンスに接続し、未使用の接続を維持しておく必要がある場合は、TCP キープアライブを設定します。

    詳しくは、Compute Engine ドキュメントのインスタンスとインターネットの間の通信をご覧ください。

    第 2 世代のインスタンスの場合、接続は自動的に維持されます。

Cloud SQL Proxy を使用して接続する

  1. プロキシ用のサービス アカウントを作成します。
    1. Google Cloud Platform Console の Cloud SQL の [サービス アカウント] ページに移動します。

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

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

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

  2. Compute Engine インスタンスが Cloud SQL インスタンスとは異なるプロジェクトにある場合、そのサービス アカウントに Cloud SQL インスタンスを含むプロジェクトでの適切な権限があることを確認します。
    1. Google Cloud Platform Console の Compute Engine インスタンスの一覧に移動します。

      Compute Engine インスタンスの一覧に移動する

    2. 必要に応じて、Compute Engine インスタンスに関連付けられたプロジェクトを選択します。
    3. Compute Engine インスタンスを選択してプロパティを表示します。
    4. Compute Engine インスタンスのプロパティで、サービス アカウントの名前をコピーします。
    5. Google Cloud Platform Console の IAM と管理者ページに移動します。

      IAM と管理者ページに移動する

    6. Cloud SQL インスタンスに関連付けられたプロジェクトを選択します。
    7. サービス アカウント名を検索ボックスにコピーし、Enter キーを押します。
    8. サービス アカウントが [編集者] の役割で表示された場合、追加する必要はありません。
    9. それ以外の場合、[メンバーを追加] をクリックします。
    10. [メンバーを追加] ダイアログ ボックスにサービス アカウント名を挿入し、役割に [編集者] を選択します。
    11. [追加] をクリックします。
  3. インスタンスに設定したオペレーティング システムに応じ、適切な手順を使用して Compute Engine インスタンスへの端末接続を開きます。
  4. Compute Engine インスタンスが RHEL または CentOS 公開イメージを実行する場合、SELinux によりプロキシ接続がブロックされることがあります。これが発生した場合、SELinux 機能を設定して接続が許可されるようにする必要があります。
    RHEL の SELinux に関する詳細については、RHEL ドキュメントをご覧ください。
    CentOS の SELinux に関する詳細については、CentOS ドキュメントをご覧ください。
  5. まだ MySQL クライアントが Compute Engine インスタンスにインストールされていない場合は、インストールします。

    Debian / Ubuntu

    MySQL クライアントをパッケージ マネージャから次のようにインストールします。

    sudo apt-get update
    sudo apt-get install mysql-client
    

    CentOS / RHEL

    MySQL クライアントをパッケージ マネージャから次のようにインストールします。

    sudo yum install mysql
    

    openSUSE

    MySQL クライアントをパッケージ マネージャから次のようにインストールします。

    sudo zypper install mysql-client
    

    他のプラットフォーム

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

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

  6. Cloud SQL Proxy を Compute Engine インスタンスにインストールします。

    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
      

    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 に変更します。
    ここにオペレーティング システムが含まれていない場合は、プロキシをソースからコンパイルすることもできます。
  7. プロキシを開始します。

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

    TCP ソケット

    1. [インスタンスの詳細] ページからインスタンス接続名をコピーします。
    2. 新しいターミナル ウィンドウを開き、プロキシを開始します。
      ./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:3306
    3. プロキシのオプションに関する詳細については、プロキシを認証するためのオプションインスタンスを指定するためのオプションをご覧ください。

    Unix ソケット

    1. 明示的なインスタンス指定を使用する場合は、インスタンス接続名を [インスタンスの詳細] ページからコピーします。
    2. プロキシ ソケットを格納するディレクトリを作成します。
      sudo mkdir /cloudsql; sudo chmod 777 /cloudsql
    3. 新しいターミナル ウィンドウを開き、プロキシを開始します。
      • 明示的なインスタンス指定を使用する場合(本番環境で推奨):
        ./cloud_sql_proxy -dir=/cloudsql -instances=<INSTANCE_CONNECTION_NAME> &
      • 自動インスタンス検出を使用する場合:
        ./cloud_sql_proxy -dir=/cloudsql &

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

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

  8. MySQL セッションを開始します。

    使用する接続文字列は、プロキシの開始時に 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 ドキュメント