本页面介绍了如何为一次性同构 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子句验证元数据。Database Migration Service for MySQL 同构迁移不会迁移用户账号和登录信息。如果来源包含由用户账号使用
DEFINER子句定义的元数据,则可能会阻止迁移。 - 如果源数据库包含引用
mysql、performance_schema、information_schema、ndbinfo或sys系统架构中的表的对象,请确保副本数据库也包含这些系统架构表。如果副本数据库没有这些表,您的迁移作业可能会失败,并显示
Unknown table in system schema。 -
在实例中创建专用的迁移用户账号。 请参阅 Cloud SQL 文档中的创建用户。请确保:
- 您允许专用用户账号从任何主机 (
host=%) 连接。 - 账号密码长度不超过 32 个字符。 如需详细了解 MySQL 用户密码长度限制,请参阅 MySQL Bug #43439。
- 您允许专用用户账号从任何主机 (
-
为专用迁移用户账号分配必要的权限。 对于一次性迁移,所需权限的完整列表取决于您是提供自己的转储文件还是使用 Database Migration Service 托管式转储功能:
代管式转储
如果您希望 Database Migration Service 自动对源数据库进行完整转储,请为用户账号分配以下权限:
手动转储
如果您提供自己的 使用
mysqldump创建的转储文件, 则无需向用户账号分配任何额外权限。
配置自托管 MySQL 数据源
如需为迁移过程配置自托管式 MySQL 源实例,请执行以下操作:
- 确保所有表(系统数据库中的表除外)都使用 InnoDB 存储引擎。如果您使用其他存储引擎,则可能需要转换表。 如需了解详情,请参阅将表从 MyISAM 转换到 InnoDB。
- 检查源数据库是否包含用户使用
DEFINER子句定义的元数据。请参阅使用DEFINER子句验证元数据。Database Migration Service for MySQL 同构迁移不会迁移用户账号和登录信息。如果来源包含由用户账号使用
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 Bug #43439。
- 您允许专用用户账号从任何主机 (
-
为专用迁移用户账号分配必要的权限。 对于一次性迁移,所需权限的完整列表取决于您是提供自己的转储文件还是使用 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子句验证元数据。Database Migration Service for MySQL 同构迁移不会迁移用户账号和登录信息。如果来源包含由用户账号使用
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 Bug #43439。
- 您允许专用用户账号从任何主机 (
-
为专用迁移用户账号分配必要的权限。 对于一次性迁移,所需权限的完整列表取决于您是提供自己的转储文件还是使用 Database Migration Service 托管式转储功能:
代管式转储
如果您希望 Database Migration Service 自动对源数据库进行完整转储,请为用户账号分配以下权限:
手动转储
如果您提供自己的 使用
mysqldump创建的转储文件, 则无需向用户账号分配任何额外权限。
配置 Amazon Aurora for MySQL 来源
如需为迁移过程配置 Amazon Aurora for MySQL 源实例,请执行以下操作:
- 检查源数据库是否包含用户使用
DEFINER子句定义的元数据。请参阅使用DEFINER子句验证元数据。Database Migration Service for 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 Bug #43439。
- 您允许专用用户账号从任何主机 (
-
为专用迁移用户账号分配必要的权限。 对于一次性迁移,所需权限的完整列表取决于您是提供自己的转储文件还是使用 Database Migration Service 托管式转储功能:
代管式转储
如果您希望 Database Migration Service 自动对源数据库进行完整转储,请为用户账号分配以下权限:
手动转储
如果您提供自己的 使用
mysqldump创建的转储文件, 则无需向用户账号分配任何额外权限。
配置 Microsoft Azure Database for MySQL 来源
如需为迁移过程配置 Microsoft Azure Database for MySQL 源实例,请执行以下操作:
- 检查源数据库是否包含用户使用
DEFINER子句定义的元数据。请参阅使用DEFINER子句验证元数据。Database Migration Service for 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 Bug #43439。
- 您允许专用用户账号从任何主机 (
-
为专用迁移用户账号分配必要的权限。 对于一次性迁移,所需权限的完整列表取决于您是提供自己的转储文件还是使用 Database Migration Service 托管式转储功能:
代管式转储
如果您希望 Database Migration Service 自动对源数据库进行完整转储,请为用户账号分配以下权限:
手动转储
如果您提供自己的 使用
mysqldump创建的转储文件, 则无需向用户账号分配任何额外权限。
后续步骤
如需获取同构 Cloud SQL for MySQL 迁移的完整分步迁移演示,请参阅 Cloud SQL for MySQL 迁移入门。