本页面介绍了如何为一次性同构 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 不会迁移同构 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 不会迁移同构 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 不会迁移同构 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 不会迁移同构 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 不会迁移同构 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 迁移使用入门。