Cloud SQL のエディションでの MySQL の機能
Cloud SQL for MySQL の Cloud SQL Enterprise Plus エディションと Cloud SQL Enterprise エディションの機能の詳細については、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 を遵守しています。
*メキシコ、モントリオール、大阪の各リージョンには、1 つまたは 2 つの物理データセンター内に 3 つのゾーンがあります。これらのリージョンは、少なくとも 3 つの物理データセンターに拡張されています。詳細については、クラウドのロケーションと Google Cloud Platform SLA をご覧ください。ワークロードの信頼性を向上させるには、マルチリージョン デプロイを検討してください。
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 USER
、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 for MySQL 8.4 では、次の機能はサポートされていません。
- タグ付けされた GTID。タグ付き GTID の詳細については、MySQL 8.4 リリースノートの MySQL 8.4 で追加または変更された機能セクションの「MySQL レプリケーション: タグ付き GTID」をご覧ください。
また、Cloud SQL for MySQL では、MySQL 8.4 で導入された次の権限は付与されません。
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 Discussion グループを使用してください。
サポートされているストレージ エンジンは 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
をご覧ください。
MySQL 認証
このセクションでは、MySQL 組み込み認証に加えられた変更について説明します。
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 プラガブル認証のキャッシュ保存をご覧ください。
MySQL 8.4 認証プラグインのデフォルト
Cloud SQL for MySQL 8.4 以降では、caching_sha2_password
プラグインがデフォルトの認証プラグインになります。作成したすべての内部ユーザーと新しいユーザー アカウントは、認証に caching_sha2_password
プラグインを使用します。Cloud SQL for MySQL 8.4 では、mysql_native_password
プラグインを使用する既存の Cloud SQL ユーザー アカウントを引き続きサポートしています。これらの既存のアカウントは、インスタンスが MySQL 8.4 にアップグレードされた後も、Cloud SQL for MySQL インスタンスに引き続き接続できます。
Cloud SQL for MySQL 8.4 では、mysql_native_password
認証プラグインは非推奨になりました。非推奨の mysql_native_password
認証プラグインを使用して新しいユーザー アカウントを作成しようとすると、エラーが発生します。Cloud SQL for MySQL 8.4 でアカウントの authentication_policy
を設定して mysql_native_password
を使用することはできません。
既存のデータベース ユーザー アカウントを変更して caching_sha2_password
認証プラグインを使用するようにするには、次のコマンドを使用します。
ALTER USER 'username'@'%' IDENTIFIED WITH caching_sha2_password BY 'user_password';
username と user_password は、更新するユーザー アカウントの値に置き換えます。
この変更がサーバー、クライアント、コネクタ間の互換性に与える影響について詳しくは、caching_sha2_password as the Preferred Authentication Plugin
をご覧ください。
Cloud SQL での MySQL システムフラグの変更
一部の MySQL システムフラグでは、Cloud SQL はデフォルト値とは異なる値を使用します。これらのフラグの値は変更できません。フラグの一覧については、Cloud SQL で変更されたシステムフラグをご覧ください。
Cloud SQL for MySQL 8.0 以降のバージョンでサポートされていない Cloud SQL の機能
Cloud SQL for MySQL 8.0 以降のバージョンでは、フェイルオーバー レプリカを使用する以前の Cloud SQL for MySQL の高可用性(HA)構成はサポートされていません。Cloud SQL for MySQL 8.0 以降のバージョンでは、リージョン HA 構成のみがサポートされています。
Cloud SQL エディションでの PostgreSQL の機能
Cloud SQL for PostgreSQL の各エディションの機能の詳細については、Cloud SQL エディションの概要をご覧ください。
Cloud SQL 向けの PostgreSQL 機能のサポート
- クラウド内のフルマネージド PostgreSQL データベース。
- インスタンスは南北アメリカ、EU、アジア、オーストラリアで利用できます。Cloud SQL インスタンスを作成できるすべてのロケーションをご覧ください。
- Database Migration Service(DMS)を使用して、ソース データベースから Cloud SQL 移行先データベースへの移行をサポートします。
- お客様のデータは、Google の内部ネットワークおよびデータベース テーブル、一時ファイル、バックアップで暗号化されています。
- Cloud SQL Auth Proxy または SSL / TLS プロトコルで安全な外部接続をサポートします。
- 自動フェイルオーバーにより複数のゾーン間でデータが複製されます。*
- SQL ダンプファイルを使用して、データベースのインポートとエクスポートを行います。
- PostgreSQL クライアント / サーバー プロトコルと標準の PostgreSQL コネクタをサポートします。
- 自動バックアップ、オンデマンド バックアップ、ポイントインタイム リカバリ。
- インスタンス クローンの作成。
- Google Cloud Observability のロギングとモニタリングを統合します。
- 複数の PostgreSQL バージョンをサポートします。
- 論理レプリケーション
*メキシコ、モントリオール、大阪の各リージョンには、1 つまたは 2 つの物理データセンター内に 3 つのゾーンがあります。これらのリージョンは、少なくとも 3 つの物理データセンターに拡張されています。詳細については、クラウドのロケーションと Google Cloud Platform SLA をご覧ください。ワークロードの信頼性を向上させるには、マルチリージョン デプロイを検討してください。
Cloud SQL でサポートされている PostgreSQL 拡張機能
Cloud SQL は PostgreSQL の多くの拡張機能をサポートしています。これらの拡張機能の完全なリストについては、PostgreSQL の拡張機能を構成するをご覧ください。
Cloud SQL でサポートされている PostgreSQL 手続き型言語
Cloud SQL は PL/pgSQL
SQL 手続き型言語をサポートしています。
Cloud SQL for PostgreSQL でサポートされている言語
Cloud SQL は、次の言語で記述されたフレキシブル環境で動作する App Engine アプリケーションで使用できます。
- C#
- Go
- Java
- Node.js
- PHP
- Python
- Ruby
また、標準の PostgreSQL クライアント / サーバー プロトコルを使用する外部アプリケーションでも Cloud SQL を使用できます。
Cloud SQL for PostgreSQL インスタンスに接続する方法
Cloud SQL インスタンスに接続するには、次を使用します。
psql
クライアント。詳細については、こちらをご覧ください。- 標準の PostgreSQL クライアント / サーバー プロトコルを使用するサードパーティ製ツール
- 外部アプリケーション。こちらで詳細をご確認ください。
- App Engine アプリケーション。こちらで詳細をご確認ください。
- Compute Engine で実行するアプリケーション。こちらで詳細をご確認ください。
- Google Kubernetes Engine で実行するアプリケーション。詳細。
- Cloud Run 関数。詳細。
- Cloud Run。詳細
限定公開の Google アクセスを使用した Cloud SQL への接続はサポートされていません。
標準 PostgreSQL と Cloud SQL for PostgreSQL の違い
一般に、Cloud SQL インスタンスが提供する PostgreSQL 機能は、ローカルにホストされた PostgreSQL インスタンスが提供する機能と同じです。ただし、標準 PostgreSQL インスタンスと Cloud SQL インスタンスの間にはいくつか違いがあります。
Cloud SQL for PostgreSQL でサポートされていない機能
SUPERUSER
権限を必要とする機能(次の例外を除く):CREATE EXTENSION
ステートメントは、サポートされている拡張機能でのみ使用できます。cloudsqlsuperuser
ロールが割り当てられている場合は、CREATE CAST
ステートメントとDROP CAST
ステートメントを実行できます。詳細については、スーパーユーザーの制限と権限をご覧ください。
WITHOUT FUNCTION
キャスト メソッド。カスタム バックグラウンド ワーカー。
Cloud Shell の
psql
クライアントは、\c
コマンドを使用した、異なるデータベースへの接続などの、再接続が必要なオペレーションをサポートしていません。低レベル仮想マシン(LLVM)JIT コンパイル
PostgreSQL と Cloud SQL for PostgreSQL との顕著な違い
一部の PostgreSQL オプションとパラメータは、 Cloud SQL フラグとして編集できません。
構成可能な Cloud SQL フラグの追加をリクエストするには、Cloud SQL for PostgreSQL フォーラムを使用します。
Cloud SQL に対する SQL Server 機能のサポート
- クラウド内のフルマネージド SQL Server データベースです。
- 最大 624 GB の RAM と 96 個の CPU を搭載するカスタム マシンタイプ。
- 最大 64 TB までのストレージ。必要に応じて、ストレージを自動的に増やすことができます。
- Google Cloud Console でインスタンスを作成、管理します。
- インスタンスは南北アメリカ、ヨーロッパ、アジア、オーストラリアで利用できます。Cloud SQL インスタンスを作成できるすべてのロケーションをご覧ください。
- お客様のデータは、Google の内部ネットワークおよびデータベース テーブル、一時ファイル、バックアップで暗号化されています。
- ユーザー データベースの列レベルとセルレベルの暗号化を行います。
- Cloud SQL Auth Proxy または SSL / TLS プロトコルで安全な外部接続をサポートします。
- BAK ファイルと SQL ファイルを使用してデータベースをインポートします。
- BAK ファイルを使用してデータベースをエクスポートします。
- 自動バックアップ、オンデマンド バックアップ、ポイントインタイム リカバリ。
- インスタンス クローンの作成。
- Stackdriver Logging / Monitoring との統合
- レプリケーションやその他のジョブを容易にする SQL Server エージェントが有効になりました。
- 複数のリージョン間でのデータ レプリケーション*。
- インスタンスの作成時にデータベースのデフォルトの照合を設定します。
- リージョン永続ディスクによる高可用性。
- Windows 認証などの Microsoft Active Directory 用のマネージド サービスと統合します。
- 変更データ キャプチャ(CDC)。
- インテリジェントなクエリ処理。
- データベースの復旧を高速化。
- 拡張データ分類。
- UTF-8 文字エンコードのサポート。
- モニタリングの強化。
- 動的データ マスキング(DDM)。
- リンクされているサーバー。
- SQL Server Audit。
- SQL Server パブリッシャー。
- SQL Server サブスクライバー。
- 別のホストで実行され、Cloud SQL に接続する SQL Server Integration Services(SSIS)。
- 別のホストで実行され、Cloud SQL に接続する SQL Server Reporting Services(SSRS)。
- 一括コピー プログラム(bcp)ユーティリティ。bcp ユーティリティのダウンロードとインストールの詳細については、Microsoft のドキュメントをご覧ください。
- SqlPackage を使用することによる BAQC ファイルのインポートとエクスポート。SqlPackage のダウンロードとインストールの詳細については、Microsoft のドキュメントをご覧ください。
- データをインポートするための一括挿入。この機能は SQL Server 2022 でのみサポートされています。ストアド プロシージャは、一括挿入の実行に使用できます。詳細については、データのインポートに一括挿入を使用するをご覧ください。
- セキュリティで保護されたエンクレーブを使用しない Always Encrypted。
- 拡張イベント(XEvents)。
- インスタンスの作成時とインスタンスの作成後にカスタムタイムゾーンがサポートされる。
*メキシコ、モントリオール、大阪の各リージョンには、1 つまたは 2 つの物理データセンター内に 3 つのゾーンがあります。これらのリージョンは、少なくとも 3 つの物理データセンターに拡張されています。詳細については、クラウドのロケーションと Google Cloud Platform SLA をご覧ください。ワークロードの信頼性を向上させるには、マルチリージョン デプロイを検討してください。
Cloud SQL で使用できない SQL Server の機能
次の機能は Cloud SQL では利用できず、Google Cloud ではサポートされていません。
Cloud SQL で使用できない一般的な SQL Server の機能
- SQL Server Analysis Services(SSAS)
- SP_Configure settings。この機能の詳細については、データベース フラグを構成するをご覧ください。
- ストレッチ データベース
- Microsoft Azure Blob ストレージへのバックアップ
- バッファプール拡張
- OPENROWSET 機能
- データ品質サービス
- データベース ログのシッピング
- データベース メール
- 分散トランザクション コーディネーター(MSDTC)
- ファイル テーブル
- FILESTREAM のサポート
- メンテナンス プラン
- パフォーマンス データ コレクタ
- ポリシーベースの管理
- PolyBase
- ML と R Services
- リソース ガバナー
- サーバーレベルのトリガー
- Service Broker エンドポイント
- T-SQL エンドポイント(
CREATE ENDPOINT
を使った操作はすべて使用不可です) - WCF Data Services
sysadmin
ロールと、このロールを必要とするシステム ストアド プロシージャ- ハイブリッド バッファプール
- メモリ最適化 tempdb メタデータ
- データベース スナップショットのメモリ内 OLTP サポート
- 外部言語の登録
- 行レベルのセキュリティ
- 透過的データ暗号化(TDE)。Google Cloud での暗号化の詳細については、顧客管理の暗号鍵(CMEK)についてとデフォルトの保存データの暗号化をご覧ください。
- オブジェクト ストレージのバックアップと復元
- インメモリ データベース: 永続メモリ
- リアルタイムの運用分析
- アクセラレーションとオフロードの統合
- 直接書き込みを伴うハイブリッド バッファプール
- マルチ書き込みレプリケーション
- Azure SQL マネージド インスタンスへのリンク
- 包含可用性グループ
- セキュリティで保護されたエンクレーブを使用する Always Encrypted
- Azure Active Directory 認証
- PFX 証明書のサポートとその他の暗号の改善
- MS-TDS 8.0 プロトコルと TLS 1.3
Cloud SQL で使用できないその他の SQL Server オペレーション
- ADMINISTER BULK OPERATIONS
- ALTER ANY CREDENTIAL
- ALTER ANY EVENT NOTIFICATION
- ALTER ANY EVENT SESSION
- ALTER RESOURCES
- ALTER SETTINGS
- AUTHENTICATE SERVER
- CONTROL_SERVER
- CREATE DDL EVENT NOTIFICATION
- CREATE ENDPOINT
- CREATE TRACE EVENT NOTIFICATION
- EXTERNAL ACCESS ASSEMBLY
- RESTORE
- SHUTDOWN
- CLR ASSEMBLIES
Cloud SQL for SQL Server でサポートされている構文
Cloud SQL は、Transact-SQL 構文 をサポートしています。
Cloud SQL for SQL Server でサポートされている言語
Cloud SQL は、次の言語で記述されフレキシブル環境で動作する App Engine アプリケーションで使用できます。
- C#
- Go
- Java
- Node.js
- PHP
- Python
- Ruby
Cloud SQL for SQL Server インスタンスに接続する方法
Cloud SQL インスタンスに接続するには、次を使用します。
限定公開の Google アクセスを使用した Cloud SQL への接続はサポートされていません。