将数据从 MySQL 数据库快照迁移到 MariaDB 数据库实例 - Amazon Relational Database Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

将数据从 MySQL 数据库快照迁移到 MariaDB 数据库实例

可使用 AWS CLI 或 Amazon RDS API 将 RDS for MySQL 数据库快照迁移到运行 MariaDB 10.1 的新数据库实例。您必须从运行 MySQL 5.6 的 Amazon RDS 数据库实例创建该数据库快照。要了解如何创建 RDS for MySQL 数据库快照,请参阅 创建数据库快照

在从 MySQL 迁移到 MariaDB 后,MariaDB 数据库实例将与默认数据库参数组和选项组关联。在还原数据库快照后,可以关联新数据库实例的自定义数据库参数组。不过,MariaDB 参数组具有一组不同的可配置系统变量。有关 MySQL 和 MariaDB 系统变量之间的差异的信息,请参阅 MariaDB 10.1 和 MySQL 5.6 之间的系统变量差异。要了解数据库参数组,请参阅 使用数据库参数组。要了解选项组,请参阅使用选项组

MariaDB 和 MySQL 之间的不兼容性

MySQL 和 MariaDB 之间的不兼容性包括:

  • 您无法将使用 MySQL 5.5 创建的数据库快照迁移到 MariaDB 10.1。

  • 您无法将使用 MySQL 5.7 创建的数据库快照迁移到 MariaDB。

  • 您无法将使用 MySQL 8.0 创建的数据库快照迁移到 MariaDB。

  • 您无法迁移已加密快照。

  • 如果源 MySQL 数据库使用 SHA256 密码哈希,则您需要先重置经过 SHA256 哈希处理的用户密码,然后才能连接到 MariaDB 数据库。以下代码说明如何重置经过 SHA256 哈希处理的密码:

    SET old_passwords = 0; UPDATE mysql.user SET plugin = 'mysql_native_password', Password = PASSWORD('new_password') WHERE (User, Host) = ('master_user_name', %); FLUSH PRIVILEGES;
  • 如果您的 RDS 主用户账户使用 SHA-256 密码哈希,则您必须使用 AWS 管理控制台、modify-db-instance AWS CLI 命令或 ModifyDBInstance RDS API 操作重置密码。有关修改数据库实例的信息,请参阅修改 Amazon RDS 数据库实例

  • MariaDB 不支持内存缓存插件;不过,由内存缓存插件使用的数据将存储为 InnoDB 表。在迁移 MySQL 数据库快照后,您可以使用 SQL 访问由内存缓存插件使用的数据。有关 innodb_memcache 数据库的更多信息,请参阅 InnoDB 内存缓存插件内部信息

执行迁移

您可以使用 AWS CLI 或 RDS API 将 RDS for MySQL 数据库快照迁移到新的 MariaDB 数据库实例。

注意

但无法使用 AWS 管理控制台 将 RDS for MySQL 数据库快照迁移到新的 MariaDB 数据库实例。

要将数据从 MySQL 数据库快照迁移到 MariaDB 数据库实例,请结合以下参数使用 AWS CLI restore-db-instance-from-db-snapshot 命令:

  • --db-instance-identifier – 要从数据库快照创建的数据库实例的名称。

  • --db-snapshot-identifier – 要从中还原的数据库快照的标识符。

  • --engine – 要用于新实例的数据库引擎。

对于 Linux、macOS 或 Unix:

aws rds restore-db-instance-from-db-snapshot \ --db-instance-identifier newmariadbinstance \ --db-snapshot-identifier mysqlsnapshot \ --engine mariadb

对于 Windows:

aws rds restore-db-instance-from-db-snapshot ^ --db-instance-identifier newmariadbinstance ^ --db-snapshot-identifier mysqlsnapshot ^ --engine mariadb

要将数据从 MySQL 数据库快照迁移到 MariaDB 数据库实例,请调用 Amazon RDS API 操作 RestoreDBInstanceFromDBSnapshot