Cloud SQL のエディションでの MySQL の機能
Cloud SQL for MySQL の各エディションの機能の詳細については、Cloud SQL エディションの概要をご覧ください。
Cloud SQL 向けの MySQL 機能のサポート
- クラウド内のフルマネージド MySQL Community Edition データベースです。
- インスタンスは南北アメリカ、EU、アジア、オーストラリアで利用できます。Cloud SQL インスタンスを作成できるすべてのロケーションをご覧ください。
- Database Migration Service(DMS)を使用した、ソース データベースから Cloud SQL 移行先データベースへの移行をサポートします。
- Google の内部ネットワーク、データベース テーブル、一時ファイル、バックアップでは、お客様のデータは暗号化されます。
- Cloud SQL Auth Proxy または SSL / TLS プロトコルで安全な外部接続をサポートします。
- プライベート IP(プライベート サービス アクセス)をサポートします。
- 自動フェイルオーバーにより複数のゾーン間でデータが複製されます。
mysqldump
を使用したデータベースのインポートとエクスポート、または CSV ファイルのインポートやエクスポートも可能です。- MySQL ワイヤ プロトコルと標準 MySQL コネクタをサポートします。
- 自動バックアップ、オンデマンド バックアップ、ポイントインタイム リカバリを行います。
- インスタンス クローンの作成。
- Google Cloud Observability のロギングとモニタリングとの統合。
- ISO/IEC 27001 に準拠しています。
Cloud SQL for MySQL でサポートされている言語
Cloud SQL は、次の言語で記述されたフレキシブル環境で動作する App Engine アプリケーションで使用できます。
- C#
- Go
- Java
- Node.js
- PHP
- Python
- Ruby
また、標準の MySQL プロトコルを使用する外部アプリケーションでも Cloud SQL を使用できます。
Cloud SQL for MySQL インスタンスに接続する方法
Cloud SQL インスタンスには、以下から接続できます。
mysql
クライアント。- SQL Workbench、Toad for MySQL などのサードパーティ製ツール。
- 外部アプリケーション。
- App Engine アプリケーション。
- Compute Engine で実行するアプリケーション。
- Google Kubernetes Engine で実行するアプリケーション。
- Cloud Run 関数。
- Cloud Run。
- Google Apps Script スクリプト。
限定公開の Google アクセスを使用した Cloud SQL への接続はサポートされていません。プライベート サービス アクセスがサポートされています。詳細については、サービスのプライベート アクセス オプションをご覧ください。
Cloud SQL for MySQL 8.0 でのユーザー管理
MySQL 8.0 での変更箇所があるため、MySQL ユーザー管理に CREATE
ステートメントや DELETE
ステートメントは使用できません。INSERT
、UPDATE
、DELETE
ステートメントを使用してユーザー権限を変更することもできません。ユーザー権限を変更するには、代わりに CREATE
、DROP USER
、GRANT
、REVOKE
ステートメントを使用します。詳細については、Account management notes をご覧ください。
注: Account management notes の、mysql_upgrade
によるバージョン 8.0 へのアップグレードに関する記述は無視してください。代わりに、インスタンスでの MySQL のアップグレードの手順に沿ってアップグレードしてください。
MySQL の標準機能と Cloud SQL for MySQL の違い
一般に、Cloud SQL インスタンスが提供する MySQL 機能は、ローカルにホストされた MySQL インスタンスが提供する機能と同じです。ただし、標準 MySQL インスタンスと Cloud SQL インスタンスの間にはいくつか違いがあります。
Cloud SQL でサポートされていない MySQL の機能
次の機能は Cloud SQL for MySQL 5.6 と 5.7 ではサポートされていません。
Cloud SQL for MySQL 8.0 で、次の機能はサポートされていません。
Cloud SQL でサポートされていない MySQL プラグイン
Cloud SQL でサポートされていない MySQL ステートメント
次の SQL ステートメントは、メッセージ「Error 1290:
The MySQL server is running with the Google option so it cannot execute this
statement
」のエラーを生成します。
LOAD DATA INFILE
SELECT ... INTO OUTFILE
SELECT ... INTO DUMPFILE
INSTALL PLUGIN ...
UNINSTALL PLUGIN
CREATE FUNCTION ... SONAME ...
MySQL インスタンスでは GTID レプリケーションを使用するため、以下のステートメントはサポートされていません。
CREATE TABLE ... SELECT
ステートメント- トランザクション テーブルと非トランザクション テーブルの両方を更新するトランザクションやステートメント
Cloud SQL for MySQL 5.6 と 5.7 で次の MySQL ステートメントはサポートされていませんが、Cloud SQL for MySQL 8.0 ではサポートされています。
- トランザクション内の
CREATE TEMPORARY TABLE
ステートメント
詳しくは、MySQL のドキュメントをご覧ください。
Cloud SQL でサポートされていない MySQL 関数
LOAD_FILE()
Cloud SQL でサポートされていない MySQL クライアント プログラムの機能
--tab
オプションを使用しているか、--tab
で使用されるオプションを使用しているmysqldump
。これは、インスタンス ユーザーに対してファイル権限が許可されていないためです。他のmysqldump
オプションはすべてサポートされています。Cloud SQL へのインポート用にファイルを最適化するmysqldump
オプションの使用については、mysqldump を使用してローカル MySQL サーバーからエクスポートするをご覧ください。--local
オプションを使用しないmysqlimport
。これはLOAD DATA INFILE
制限が原因です。Cloud SQL インスタンスにデータをインポートするには、ダンプファイルを使用するインポートまたは CSV ファイルを使用するインポートをご覧ください。バイナリデータを含むデータベースを Cloud SQL インスタンスにインポートするには、
--hex-blob
オプションとmysqldump
を併用する必要があります。ローカルの MySQL サーバー インスタンスと
mysql
クライアントを使用している場合、hex-blob
は必須フラグではありませんが、バイナリデータを含むデータベースを Cloud SQL インスタンスにインポートする場合は必須です。Cloud SQL インスタンスにデータをインポートするには、ダンプファイルを使用するインポートまたは CSV ファイルを使用するインポートをご覧ください。Cloud SQL フラグとして編集できない MySQL オプションとパラメータがあります。
構成可能な Cloud SQL フラグの追加をリクエストするには、Cloud SQL ヘルプグループを使用します。
サポートされているストレージ エンジンは InnoDB だけです。テーブルを MyISAM から InnoDB に変換する方法については、MySQL ドキュメントのテーブルの InnoDB への変換をご覧ください。
Cloud SQL 用にプリセットされた MySQL オプション
Cloud SQL は、特定のオプション セットを使用して MySQL を実行します。オプションがアプリケーションの動作に影響を与える可能性がある場合は、参考情報としてここに記載します。
skip-name-resolve
このフラグは、クライアント接続のホスト名の解決方法に影響します。MySQL のドキュメントで skip-name-resolve
をご覧ください。
log_bin
このフラグは、バイナリ ロギングが有効かどうかを伝えます。--log-bin
オプションが使用されている場合、この変数の値は ON
です。使用されていない場合は OFF
です。MySQL のドキュメントで log_bin
をご覧ください。
Cloud SQL 向け MySQL 8.0 認証
Cloud SQL for MySQL 8.0 では、新規ユーザー用のデフォルトの認証プラグインとして、caching_sha2_password
ではなく mysql_native_password
を使用します。mysql_native_password
プラグインは MySQL 5.6 と 5.7 のユーザー用のデフォルトです。
新規ユーザーが caching_sha2_password
プラグインをデフォルト認証として使用するようにしたい場合は、caching_sha2_password
を使用するように default_authentication_plugin
のインスタンス フラグを構成します。
既存のユーザーが caching_sha2_password
を使用するように構成するには、ALTER USER
コマンドを使用して認証プラグインを変更します。
caching_sha2_password
認証を使用するユーザーは、接続時に get-server-public-key
フラグを使用する必要が生じることがあります。詳しくは、MySQL のドキュメントで SHA-2 プラガブル認証の使用をご覧ください。
Cloud SQL での MySQL システムフラグの変更
一部の MySQL システムフラグでは、Cloud SQL はデフォルト値とは異なる値を使用します。これらのフラグの値は変更できません。フラグの一覧については、Cloud SQL で変更された MySQL システムフラグをご覧ください。
Cloud SQL for MySQL 8.0 ではサポートされていない Cloud SQL の機能
Cloud SQL for MySQL 8.0 では、フェイルオーバー レプリカを使用する、以前のバージョンの MySQL 高可用性(HA)構成がサポートされていません。新しいリージョン HA 構成はサポートされています。