为一次性迁移配置 MySQL 源数据库

本页面介绍了如何为一次性同构 MySQL 迁移配置以下源数据库实例:

配置 Cloud SQL for MySQL 源

如需为迁移过程配置 Cloud SQL for MySQL 源实例,请执行以下操作:

  1. 检查源数据库是否包含由用户 使用 DEFINER 子句定义的元数据。请参阅 验证包含 DEFINER 子句的元数据。

    Database Migration Service 不会迁移同构 MySQL 迁移的用户账号和登录信息。包含由用户账号定义元数据的源 使用 DEFINER 子句可能会阻止迁移。

  2. 如果源数据库包含引用 表的对象,请确保副本数据库也包含这些系统 mysql、performance_schema、 information_schema、ndbinfo 或 sys 系统架构中的表 架构表。

    如果副本数据库没有这些表,迁移作业可能会 失败,并显示 Unknown table in system schema 。

  3. 在实例中创建专用的迁移用户账号。 请参阅 Cloud SQL 文档中的 创建用户。请确保:

    • 您允许专用用户账号从任何主机 (host=%) 进行连接。
    • 账号的密码长度不超过 32 个字符。 如需详细了解 MySQL 用户密码长度限制, 请参阅 MySQL Bug #43439。
  4. 为专用迁移用户账号分配必要的权限。 对于一次性迁移,所需权限的完整列表取决于 您是提供自己的转储文件,还是使用 Database Migration Service 代管式转储功能:

    代管式转储

    如果您希望 Database Migration Service 自动对您的 源数据库进行完整转储,请为用户账号分配以下权限:

    手动转储

    如果您提供使用 mysqldump 创建的自己的 转储文件,则无需为用户账号分配任何额外权限。

配置自行托管的 MySQL 源

如需为迁移过程配置自行托管的 MySQL 源实例,请执行以下操作:

  1. 确保所有表(系统数据库中的表除外) 使用 InnoDB 存储引擎。 如果您使用其他存储引擎,可能需要转换表。 如需了解详情,请参阅 将表从 MyISAM 转换为 InnoDB。
  2. 检查源数据库是否包含由用户 使用 DEFINER 子句定义的元数据。请参阅 验证包含 DEFINER 子句的元数据。

    Database Migration Service 不会迁移同构 MySQL 迁移的用户账号和登录信息。包含由用户账号定义元数据的源 使用 DEFINER 子句可能会阻止迁移。

  3. 如果源数据库包含引用 表的对象,请确保副本数据库也包含这些系统 mysql、performance_schema、 information_schema、ndbinfo 或 sys 系统架构中的表 架构表。

    如果副本数据库没有这些表,迁移作业可能会 失败,并显示 Unknown table in system schema 。

  4. 确保 GTID_MODE 设置为 ON 或 OFF,不支持其他值。

    在以下情况下,Database Migration Service 要求将 GTID_MODE 设置为 ON :

    如需详细了解 GTID_MODE,请参阅 全局交易 ID 系统变量。

  5. 在实例中创建专用的迁移用户账号。 请参阅 账号管理语句。请确保:

    • 您允许专用用户账号从任何主机 (host=%) 进行连接。
    • 账号的密码长度不超过 32 个字符。 如需详细了解 MySQL 用户密码长度限制, 请参阅 MySQL Bug #43439。
  6. 为专用迁移用户账号分配必要的权限。 对于一次性迁移,所需权限的完整列表取决于 您是提供自己的转储文件,还是使用 Database Migration Service 代管式转储功能:

    代管式转储

    如果您希望 Database Migration Service 自动对您的 源数据库进行完整转储,请为用户账号分配以下权限:

    • SELECT
    • SHOW VIEW
    • TRIGGER
    • 对于具有 GTID_MODE = ON 设置的源: RELOAD

      使用代管式转储流程时,只有在您 迁移到已启用 读取副本 的现有目标实例时,Database Migration Service 才需要 GTID_MODE = ON 设置。

    • 对于 MySQL 8.0 或更高版本: 确保迁移账号 没有 BACKUP_ADMIN 权限。

    手动转储

    如果您提供 使用 mysqldump 创建的自己的 转储文件,则无需为用户账号分配任何额外权限。

配置 Amazon RDS for MySQL 源

如需为迁移过程配置 Amazon RDS for MySQL 源实例,请执行以下操作:

  1. Amazon RDS for MySQL 默认使用 InnoDB 存储引擎,但也允许使用其他存储引擎。 确保所有表(系统数据库中的表除外)都使用 InnoDB 存储引擎。 如果您使用其他存储引擎,可能需要转换表。 如需了解详情,请参阅 将表从 MyISAM 转换为 InnoDB。
  2. 检查源数据库是否包含由用户 使用 DEFINER 子句定义的元数据。请参阅 验证包含 DEFINER 子句的元数据。

    Database Migration Service 不会迁移同构 MySQL 迁移的用户账号和登录信息。包含由用户账号定义元数据的源 使用 DEFINER 子句可能会阻止迁移。

  3. 如果源数据库包含引用 表的对象,请确保副本数据库也包含这些系统 mysql、performance_schema、 information_schema、ndbinfo 或 sys 系统架构中的表 架构表。

    如果副本数据库没有这些表,迁移作业可能会 失败,并显示 Unknown table in system schema 。

  4. 确保 GTID_MODE 设置为 ON 或 OFF,不支持其他值。 Amazon RDS for MySQL 默认使用 GTID_MODE = OFF 。

    在以下情况下,Database Migration Service 要求将 GTID_MODE 设置为 ON :

    如需详细了解 GTID_MODE,请参阅 全局交易 ID 系统变量。

  5. 在实例中创建专用的迁移用户账号。 请参阅 账号管理语句。请确保:

    • 您允许专用用户账号从任何主机 (host=%) 进行连接。
    • 账号的密码长度不超过 32 个字符。 如需详细了解 MySQL 用户密码长度限制, 请参阅 MySQL Bug #43439。
  6. 为专用迁移用户账号分配必要的权限。 对于一次性迁移,所需权限的完整列表取决于 您是提供自己的转储文件,还是使用 Database Migration Service 代管式转储功能:

    代管式转储

    如果您希望 Database Migration Service 自动对您的 源数据库进行完整转储,请为用户账号分配以下权限:

    手动转储

    如果您提供使用 mysqldump 创建的自己的 转储文件,则无需为用户账号分配任何额外权限。

配置 Amazon Aurora for MySQL 源

如需为迁移过程配置 Amazon Aurora for MySQL 源实例,请执行以下操作:

  1. 检查源数据库是否包含由用户 使用 DEFINER 子句定义的元数据。请参阅 验证包含 DEFINER 子句的元数据。

    Database Migration Service 不会迁移同构 MySQL 迁移的用户账号和登录信息。包含由用户账号定义元数据的源 使用 DEFINER 子句可能会阻止迁移。

  2. 如果源数据库包含引用 表的对象,请确保副本数据库也包含这些系统 mysql、performance_schema、 information_schema、ndbinfo 或 sys 系统架构中的表 架构表。

    如果副本数据库没有这些表,迁移作业可能会 失败,并显示 Unknown table in system schema 。

  3. 确保 GTID_MODE 设置为 ON 或 OFF,不支持其他值。 Amazon Aurora for MySQL 默认使用 GTID_MODE = OFF 。

    在以下情况下,Database Migration Service 要求将 GTID_MODE 设置为 ON :

    如需详细了解 GTID_MODE,请参阅 全局交易 ID 系统变量。

  4. 在实例中创建专用的迁移用户账号。 请参阅 账号管理语句。请确保:

    • 您允许专用用户账号从任何主机 (host=%) 进行连接。
    • 账号的密码长度不超过 32 个字符。 如需详细了解 MySQL 用户密码长度限制, 请参阅 MySQL Bug #43439。
  5. 为专用迁移用户账号分配必要的权限。 对于一次性迁移,所需权限的完整列表取决于 您是提供自己的转储文件,还是使用 Database Migration Service 代管式转储功能:

    代管式转储

    如果您希望 Database Migration Service 自动对您的 源数据库进行完整转储,请为用户账号分配以下权限:

    • SELECT
    • SHOW VIEW
    • TRIGGER
    • LOCK TABLES
    • 对于具有 GTID_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 源实例,请执行以下操作:

  1. 检查源数据库是否包含由用户 使用 DEFINER 子句定义的元数据。请参阅 验证包含 DEFINER 子句的元数据。

    Database Migration Service 不会迁移同构 MySQL 迁移的用户账号和登录信息。包含由用户账号定义元数据的源 使用 DEFINER 子句可能会阻止迁移。

  2. 如果源数据库包含引用 表的对象,请确保副本数据库也包含这些系统 mysql、performance_schema、 information_schema、ndbinfo 或 sys 系统架构中的表 架构表。

    如果副本数据库没有这些表,迁移作业可能会 失败,并显示 Unknown table in system schema 。

  3. 确保 GTID_MODE 设置为 ON 或 OFF,不支持其他值。 Microsoft Azure Database for MySQL 默认使用 GTID_MODE = OFF 。

    在以下情况下,Database Migration Service 要求将 GTID_MODE 设置为 ON :

    如需详细了解 GTID_MODE,请参阅 全局交易 ID 系统变量。

  4. 检查 require_secure_transport 设置的值。

    默认情况下,Microsoft Azure 数据库要求所有传入 连接都使用 SSL/TLS 加密。创建源连接配置文件时,请根据 require_secure_transport 值使用以下加密设置之一:

    • 如果 require_secure_transport 设置为 on,请选择 基本版 、TLS 或 mTLS 。
    • 如果 require_secure_transport 设置为 off,请选择无 。
  5. 在实例中创建专用的迁移用户账号。 请参阅 账号管理语句。请确保:

    • 您允许专用用户账号从任何主机 (host=%) 进行连接。
    • 账号的密码长度不超过 32 个字符。 如需详细了解 MySQL 用户密码长度限制, 请参阅 MySQL Bug #43439。
  6. 为专用迁移用户账号分配必要的权限。 对于一次性迁移,所需权限的完整列表取决于 您是提供自己的转储文件,还是使用 Database Migration Service 代管式转储功能:

    代管式转储

    如果您希望 Database Migration Service 自动对您的 源数据库进行完整转储,请为用户账号分配以下权限:

    • SELECT
    • SHOW VIEW
    • TRIGGER
    • 对于具有 GTID_MODE = ON 设置的源: RELOAD

      使用代管式转储流程时,只有在您 迁移到已启用 读取副本 的现有目标实例时,Database Migration Service 才需要 GTID_MODE = ON 设置。

    • 对于 MySQL 8.0 或更高版本: 确保迁移账号 没有 BACKUP_ADMIN 权限。

    手动转储

    如果您提供使用 mysqldump 创建的自己的 转储文件,则无需为用户账号分配任何额外权限。

后续步骤

如需获取有关同构 Cloud SQL for MySQL 迁移的完整分步迁移演练,请参阅 Cloud SQL for MySQL 迁移使用入门。