このページでは、1 回限りの同種 MySQL 移行用に次のソース データベース インスタンスを構成する方法について説明します。
- Cloud SQL for MySQL
- セルフホスト型 MySQL
- Amazon RDS for MySQL
- Amazon Aurora for MySQL
- Microsoft Azure Database for MySQL
Cloud SQL for MySQL ソースを構成する
移行プロセス用に Cloud SQL for MySQL のソース インスタンスを構成するには、次の操作を行います。
- ソース データベースに、
DEFINER句を使用してユーザーが定義したメタデータが含まれているかどうかを確認します。DEFINER句でメタデータを確認するをご覧ください。同種の MySQL 移行用の Database Migration Service では、ユーザー アカウントとログインは移行されません。
DEFINER句を含むユーザー アカウントで定義されたメタデータを含むソースは、移行をブロックする可能性があります。 - ソース データベースに
mysql、performance_schema、information_schema、ndbinfo、sysのシステム スキーマのテーブルを参照するオブジェクトが含まれている場合は、レプリカ データベースにもこれらのシステム スキーマ テーブルが含まれていることを確認してください。レプリカ データベースにこれらのテーブルがない場合、移行ジョブが
Unknown table in system schemaで失敗する可能性があります。 -
インスタンスに移行専用のユーザー アカウントを作成します。Cloud SQL ドキュメントの ユーザーを作成するをご覧ください。次の点を確認してください。
- 専用のユーザー アカウントが任意のホストから接続できるようにします(
host=%)。 - アカウントのパスワードの長さが 32 文字を超えていない。 MySQL ユーザーのパスワードの長さの制限については、MySQL バグ #43439 をご覧ください。
- 専用のユーザー アカウントが任意のホストから接続できるようにします(
-
移行専用のユーザー アカウントに必要な権限を割り当てます。1 回限りの移行の場合、必要な権限の完全なリストは、独自のダンプファイルを提供するか、Database Migration Service のマネージド ダンプ機能を使用するかによって異なります。
セルフホスト型 MySQL ソースを構成する
移行プロセス用に自己ホスト型の MySQL ソース インスタンスを構成するには、次の操作を行います。
- すべてのテーブル(システム データベース内のテーブルを除く)で InnoDB ストレージ エンジンが使用されていることを確認します。別のストレージ エンジンを使用している場合は、テーブルの変換が必要になることがあります。詳細については、 MyISAM から InnoDB へのテーブルの変換をご覧ください。
- ソース データベースに
DEFINER句でユーザーが定義したメタデータが含まれているかどうかを確認します。DEFINER句でメタデータを確認するをご覧ください。同種の MySQL 移行用の Database Migration Service では、ユーザー アカウントとログインは移行されません。
DEFINER句を含むユーザー アカウントで定義されたメタデータを含むソースは、移行をブロックする可能性があります。 - ソース データベースに
mysql、performance_schema、information_schema、ndbinfo、sysシステム スキーマのテーブルを参照するオブジェクトが含まれている場合は、レプリカ データベースにもこれらのシステム スキーマ テーブルが含まれていることを確認します。レプリカ データベースにこれらのテーブルがない場合、移行ジョブが
Unknown table in system schemaで失敗することがあります。 -
GTID_MODEがONまたはOFFに設定されていることを確認します。他の値はサポートされていません。Database Migration Service では、次のシナリオで
GTID_MODEをONに設定する必要があります。- リードレプリカが有効になっている 既存の移行先インスタンスに移行する場合。
- ダンプファイルを手動で作成し、移行ジョブで提供する場合。
GTID_MODEの詳細については、 グローバル トランザクション ID システム変数をご覧ください。 -
インスタンスに移行専用のユーザー アカウントを作成します。 アカウント管理ステートメントをご覧ください。次のことを確認してください。
- 専用のユーザー アカウントが任意のホストから接続できるようにします(
host=%)。 - アカウントのパスワードが 32 文字以内である。MySQL ユーザーのパスワードの長さの制限については、MySQL バグ #43439 をご覧ください。
- 専用のユーザー アカウントが任意のホストから接続できるようにします(
-
移行専用のユーザー アカウントに必要な権限を割り当てます。1 回限りの移行の場合、必要な権限の完全なリストは、独自のダンプファイルを提供するか、Database Migration Service のマネージド ダンプ機能を使用するかによって異なります。
マネージド ダンプ
Database Migration Service で移行元データベースの完全ダンプを自動的に取得する場合は、ユーザー アカウントに次の権限を割り当てます。
手動ダンプ
mysqldumpで作成した独自のダンプファイルを提供する場合、ユーザー アカウントに追加の権限を割り当てる必要はありません。
Amazon RDS for MySQL ソースを構成する
移行プロセス用に Amazon RDS for MySQL のソース インスタンスを構成するには、次の操作を行います。
- Amazon RDS for MySQL は、デフォルトで InnoDB ストレージ エンジンを使用しますが、他のストレージ エンジンも使用できます。すべてのテーブル(システム データベースのテーブルを除く)で InnoDB ストレージ エンジンが使用されていることを確認します。別のストレージ エンジンを使用する場合は、テーブルの変換が必要になることがあります。詳細については、 MyISAM から InnoDB へのテーブルの変換をご覧ください。
- ソース データベースに、
DEFINER句を使用してユーザーが定義したメタデータが含まれているかどうかを確認します。DEFINER句でメタデータを確認するをご覧ください。同種の MySQL 移行用の Database Migration Service では、ユーザー アカウントとログインは移行されません。
DEFINER句を含むユーザー アカウントで定義されたメタデータを含むソースは、移行をブロックする可能性があります。 - ソース データベースに
mysql、performance_schema、information_schema、ndbinfo、sysのシステム スキーマのテーブルを参照するオブジェクトが含まれている場合は、レプリカ データベースにもこれらのシステム スキーマ テーブルが含まれていることを確認してください。レプリカ データベースにこれらのテーブルがない場合、移行ジョブが
Unknown table in system schemaで失敗することがあります。 -
GTID_MODEがONまたはOFFに設定されていることを確認します。他の値はサポートされていません。Amazon RDS for MySQL は、デフォルトでGTID_MODE = OFFを使用します。Database Migration Service では、次のシナリオで
GTID_MODEをONに設定する必要があります。GTID_MODEの詳細については、 グローバル トランザクション ID システム変数をご覧ください。 -
インスタンスに移行専用のユーザー アカウントを作成します。 アカウント管理ステートメントをご覧ください。次のことを確認してください。
- 専用のユーザー アカウントが任意のホストから接続できるようにします(
host=%)。 - アカウントのパスワードの長さが 32 文字を超えていない。 MySQL ユーザーのパスワードの長さの制限については、MySQL バグ #43439 をご覧ください。
- 専用のユーザー アカウントが任意のホストから接続できるようにします(
-
移行専用のユーザー アカウントに必要な権限を割り当てます。1 回限りの移行の場合、必要な権限の完全なリストは、独自のダンプファイルを提供するか、Database Migration Service のマネージド ダンプ機能を使用するかによって異なります。
マネージド ダンプ
Database Migration Service で移行元データベースの完全ダンプを自動的に取得する場合は、ユーザー アカウントに次の権限を割り当てます。
SELECTSHOW VIEWTRIGGERLOCK TABLESGTID_MODE = ON設定のソースの場合:RELOADマネージド ダンプフローでは、リードレプリカが有効になっている 既存の移行先インスタンスに移行する場合にのみ、Database Migration Service で
GTID_MODE = ON設定が必要です。- ソース MySQL バージョン 8.0 以降の場合: 移行アカウントに
BACKUP_ADMIN権限がないことを確認します。
手動ダンプ
mysqldumpで作成された独自の ダンプファイルを指定する場合は、ユーザー アカウントに追加の権限を割り当てる必要はありません。
Amazon Aurora for MySQL ソースを構成する
移行プロセス用に Amazon Aurora for MySQL のソース インスタンスを構成するには、次の操作を行います。
- ソース データベースに、
DEFINER句を使用してユーザーが定義したメタデータが含まれているかどうかを確認します。DEFINER句を使用してメタデータを検証するをご覧ください。Database Migration Service の同タイプの MySQL 移行では、ユーザー アカウントとログインは移行されません。
DEFINER句を含むユーザー アカウントで定義されたメタデータを含むソースは、移行をブロックする可能性があります。 - ソース データベースに
mysql、performance_schema、information_schema、ndbinfo、sysのシステム スキーマのテーブルを参照するオブジェクトが含まれている場合は、レプリカ データベースにもこれらのシステム スキーマ テーブルが含まれていることを確認してください。レプリカ データベースにこれらのテーブルがない場合、移行ジョブが
Unknown table in system schemaで失敗することがあります。 -
GTID_MODEがONまたはOFFに設定されていることを確認します。他の値はサポートされていません。Amazon Aurora for MySQL は、デフォルトでGTID_MODE = OFFを使用します。Database Migration Service では、次のシナリオで
GTID_MODEをONに設定する必要があります。- リードレプリカが有効になっている 既存の移行先インスタンスに移行する場合。
- ダンプファイルを手動で作成し、移行ジョブで提供する場合。
GTID_MODEの詳細については、 グローバル トランザクション ID システム変数をご覧ください。 -
インスタンスに移行専用のユーザー アカウントを作成します。 アカウント管理ステートメントをご覧ください。次のことを確認してください。
- 専用のユーザー アカウントが任意のホストから接続できるようにします(
host=%)。 - アカウントのパスワードの長さが 32 文字を超えていない。 MySQL ユーザーのパスワードの長さの制限については、MySQL バグ #43439 をご覧ください。
- 専用のユーザー アカウントが任意のホストから接続できるようにします(
-
移行専用のユーザー アカウントに必要な権限を割り当てます。1 回限りの移行の場合、必要な権限の完全なリストは、独自のダンプファイルを提供するか、Database Migration Service のマネージド ダンプ機能を使用するかによって異なります。
マネージド ダンプ
Database Migration Service で移行元データベースの完全ダンプを自動的に取得する場合は、ユーザー アカウントに次の権限を割り当てます。
SELECTSHOW VIEWTRIGGERLOCK TABLESGTID_MODE = ON設定のソースの場合:RELOADマネージド ダンプフローでは、リードレプリカが有効になっている 既存の移行先インスタンスに移行する場合にのみ、Database Migration Service で
GTID_MODE = ONの設定が必要になります。- ソース MySQL バージョン 8.0 以降の場合: 移行アカウントに
BACKUP_ADMIN権限がないことを確認します。
手動ダンプ
mysqldumpで作成した独自のダンプファイルを提供する場合、ユーザー アカウントに追加の権限を割り当てる必要はありません。
Microsoft Azure Database for MySQL ソースを構成する
移行プロセス用に Microsoft Azure Database for MySQL のソース インスタンスを構成するには、次の操作を行います。
- ソース データベースに、
DEFINER句を使用してユーザーが定義したメタデータが含まれているかどうかを確認します。DEFINER句でメタデータを確認するをご覧ください。Database Migration Service の同タイプの MySQL 移行では、ユーザー アカウントとログインは移行されません。
DEFINER句を含むユーザー アカウントで定義されたメタデータを含むソースは、移行をブロックする可能性があります。 - ソース データベースに
mysql、performance_schema、information_schema、ndbinfo、sysシステム スキーマのテーブルを参照するオブジェクトが含まれている場合は、レプリカ データベースにもこれらのシステム スキーマ テーブルが含まれていることを確認します。レプリカ データベースにこれらのテーブルがない場合、移行ジョブが
Unknown table in system schemaで失敗することがあります。 -
GTID_MODEがONまたはOFFに設定されていることを確認します。他の値はサポートされていません。Microsoft Azure Database for MySQL は、デフォルトでGTID_MODE = OFFを使用します。Database Migration Service では、次のシナリオで
GTID_MODEをONに設定する必要があります。- リードレプリカが有効になっている 既存の移行先インスタンスに移行する場合。
- ダンプファイルを手動で作成し、移行ジョブで提供する場合。
GTID_MODEの詳細については、 グローバル トランザクション ID システム変数をご覧ください。 require_secure_transport設定の値を確認します。デフォルトでは、Microsoft Azure データベースは、すべての受信接続に SSL/TLS 暗号化を必要とします。
require_secure_transportの値に応じて、ソース接続プロファイルを作成するときに、次のいずれかの暗号化設定を使用します。require_secure_transportがonに設定されている場合は、[基本]、[TLS]、[mTLS] のいずれかを選択します。require_secure_transportがoffに設定されている場合は、[なし] を選択します。
-
インスタンスに移行専用のユーザー アカウントを作成します。 アカウント管理ステートメントをご覧ください。次の点を確認してください。
- 専用のユーザー アカウントが任意のホストから接続できるようにします(
host=%)。 - アカウントのパスワードが 32 文字以内である。MySQL ユーザーのパスワードの長さの制限については、MySQL バグ #43439 をご覧ください。
- 専用のユーザー アカウントが任意のホストから接続できるようにします(
-
移行専用のユーザー アカウントに必要な権限を割り当てます。1 回限りの移行の場合、必要な権限の完全なリストは、独自のダンプファイルを提供するか、Database Migration Service のマネージド ダンプ機能を使用するかによって異なります。
マネージド ダンプ
Database Migration Service で移行元データベースの完全ダンプを自動的に取得する場合は、ユーザー アカウントに次の権限を割り当てます。
手動ダンプ
mysqldumpで作成された独自のダンプファイルを指定する場合は、ユーザー アカウントに追加の権限を割り当てる必要はありません。
次のステップ
同種の Cloud SQL for MySQL 移行の詳細な移行手順については、 Cloud SQL for MySQL 移行のスタートガイドをご覧ください。