IP を使用して MySQL クライアントを Cloud SQL インスタンスに接続する方法については、IP アドレスを使用して MySQL クライアントを接続するをご覧ください。
プロキシの仕組みの詳細については、Cloud SQL Proxy についてをご覧ください。
準備
MySQL を Cloud SQL インスタンスに接続するには、以下を実行しておく必要があります。
- Cloud SQL インスタンスを作成し、デフォルト ユーザーを構成します。
インスタンスの作成の詳細については、インスタンスの作成をご覧ください。
デフォルト ユーザーの構成方法の詳細については、デフォルト ユーザー アカウントを構成するをご覧ください。
- インスタンスに接続する方法を決定します。
使用できる接続オプションと接続オプションの選択方法については、外部アプリケーション用の接続オプションをご覧ください。
- MySQL クライアントをインストールします。
MySQL クライアントの接続
プロキシで MySQL クライアントを Cloud SQL インスタンスに接続する手順では、次のことを行います。
1. API を有効化する
Cloud SQL Admin API を有効にします。2. プロキシをインストールする
Linux 64 ビット
- プロキシをダウンロードします。
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
- プロキシを実行できるようにします。
chmod +x cloud_sql_proxy
Linux 32 ビット
- プロキシをダウンロードします。
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.386 -O cloud_sql_proxy
- プロキシを実行できるようにします。
chmod +x cloud_sql_proxy
macOS 64 ビット
- プロキシをダウンロードします。
curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64
- プロキシを実行できるようにします。
chmod +x cloud_sql_proxy
macOS 32 ビット
- プロキシをダウンロードします。
curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.386
- プロキシを実行できるようにします。
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 認証ガイドをご覧ください。
サービス アカウントを使用してプロキシの認証情報を提示する場合は、十分な権限が付与されたサービス アカウントを作成する必要があります。よりきめ細かい Identity Access and Management(IAM)のロールを使用して Cloud SQL 権限を管理する場合は、サービス アカウントに cloudsql.instances.connect 権限を含むロールを付与する必要があります。この権限を含む事前定義された Cloud SQL のロールは次のとおりです。
- Cloud SQL クライアント
- Cloud SQL 編集者
- Cloud SQL 管理者
以前のプロジェクトのロール(閲覧者、編集者、オーナー)を使用する場合、サービス アカウントには少なくとも編集者のロールが付与されている必要があります。
- Google Cloud Console の [サービス アカウント] ページに移動します。
- Cloud SQL インスタンスを含むプロジェクトを選択します。
- [サービス アカウントを作成] をクリックします。
- [サービス アカウントの作成] ダイアログで、わかりやすいサービス アカウント名を指定します。
- [役割] で、次のいずれかの役割を選択します。
- [Cloud SQL] > [Cloud SQL クライアント]
- [Cloud SQL] > [Cloud SQL 編集者]
- [Cloud SQL] > [Cloud SQL 管理者]
または、[プロジェクト] > [編集者] の順に選択して、基本的な編集者のロールを使用することもできますが、編集者のロールには Google Cloud 全体に対する権限が含まれています。
これらの役割が表示されない場合、Google Cloud ユーザーに
resourcemanager.projects.setIamPolicy
権限がない可能性があります。権限を確認するには、Google Cloud Console の IAM ページにアクセスし、自分のユーザー ID を検索します。 - [サービス アカウント ID] を一意のわかりやすい値に変更します。
-
[新しい秘密鍵の提供] をクリックし、キーのタイプが
JSON
であることを確認します。 -
[作成] をクリックします。
秘密鍵ファイルがマシンにダウンロードされます。秘密鍵ファイルは、別の場所に移動できます。安全な場所に鍵ファイルを保管してください。
4. プロキシを開始する
言語や環境に応じて、TCP ソケットまたは Unix ソケットのどちらかを使用してプロキシを開始できます。
TCP ソケット
[インスタンスの詳細] ページからインスタンス接続名をコピーします。
例:
myproject:myregion:myinstance
。- サービス アカウントを使用してプロキシを認証する場合は、サービス アカウントを作成したときに作成された秘密鍵ファイルのクライアント マシン上での場所を記録しておきます。
- プロキシを開始します。
考えられるプロキシ呼び出し文字列を以下にいくつか示します。
- 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> &
プロキシ オプションの詳細については、プロキシを認証するためのオプションとインスタンスを指定するためのオプションをご覧ください。
- Cloud SDK 認証を使用する場合
Unix ソケット
- 明示的なインスタンス指定を使用する場合は、[インスタンスの詳細] ページからインスタンス接続名をコピーします。
- プロキシ ソケットを格納するディレクトリを作成します。
sudo mkdir /cloudsql; sudo chmod 777 /cloudsql
- サービス アカウントを使用してプロキシを認証する場合は、サービス アカウントを作成したときに作成された秘密鍵ファイルのクライアント マシン上での場所を記録しておきます。
- 新しいターミナル ウィンドウを開き、プロキシを開始します。
考えられるプロキシ呼び出し文字列を以下にいくつか示します。
- サービス アカウントを使用して、インスタンス接続の名前を明示的に指定する場合(本番環境用に推奨):
./cloud_sql_proxy -dir=/cloudsql -instances=<INSTANCE_CONNECTION_NAME> \ -credential_file=<PATH_TO_KEY_FILE> &
- Cloud SDK 認証と自動インスタンス検出を使用する場合
./cloud_sql_proxy -dir=/cloudsql &
専用のターミナルでプロキシを開始することを強くおすすめします。こうすることで他のプログラムからの出力と混ざることなく出力をモニタリングできます。
プロキシ オプションの詳細については、プロキシを認証するためのオプションとインスタンスを指定するためのオプションをご覧ください。
- サービス アカウントを使用して、インスタンス接続の名前を明示的に指定する場合(本番環境用に推奨):
-
Unix ソケットを使用して Cloud SQL Proxy を使用する Cloud SQL に接続する場合、ソケットのファイル名の長さがシステムの上限を超えていないことを確認してください。システムによって異なりますが、通常は 91~108 文字です。Linux では、この長さが通常 108 文字と定義され、次のコマンドで確認できます。
cat /usr/include/linux/un.h | grep "define UNIX_PATH_MAX"
5. クライアント セッションを開始する
ここまでで、プロキシをインストールして開始しました。次は、このプロキシを使用して MySQL セッションを開始できます。MySQL クライアントで Cloud SQL インスタンスに接続するときは常に、このコマンドを使用できます。
使用する接続文字列は、プロキシの開始時に TCP ソケットを使用したか Unix ソケットを使用したかによって異なります。
TCP ソケット
- MySQL クライアントを起動します。
mysql -u <USERNAME> -p --host 127.0.0.1
TCP ソケットを使用して接続する場合、プロキシには
127.0.0.1
経由でアクセスします。 - プロンプトが表示されたら、パスワードを入力します。
- MySQL プロンプトが表示されます。
Unix ソケット
- MySQL クライアントを起動します。
mysql -u <USERNAME> -p -S /cloudsql/<INSTANCE_CONNECTION_NAME>
- パスワードを入力します。
- MySQL プロンプトが表示されます。
お困りの場合、プロキシのトラブルシューティングについては、Cloud SQL Proxy 接続のトラブルシューティングをご覧ください。または、Cloud SQL のサポートページをご覧ください。
次のステップ
- プロキシについて学習します。
- Cloud SQL Proxy のヘルプで、接続に関する問題のトラブルシューティングをご覧ください。
- プライベート IP でのプロキシの使用について学習します。
- Cloud SQL インスタンスの 2 レベルのアクセス制御について学習します。
- ユーザーとデータベースを作成します。
- アプリケーションからインスタンスへの接続について学習します。
- MySQL クライアントについて学習します。
- サポート用オプションについて学習します。