将数据从 MySQL 数据库快照迁移到 MariaDB 数据库实例
您可使用 Amazon Web Services Management Console、Amazon CLI 或 Amazon RDS API 将 RDS for MySQL 数据库快照迁移到运行 MariaDB 的新数据库实例。您必须使用从运行 MySQL 5.6 或 5.7 的 Amazon RDS 数据库实例创建的数据库快照。要了解如何创建 RDS for MySQL 数据库快照,请参阅 为 Amazon RDS 的单可用区数据库实例创建数据库快照。
迁移快照不会影响从中拍摄快照的原始数据库实例。您可以先测试和验证新数据库实例,然后再将流量转移到该数据库实例以替代原始数据库实例。
在从 MySQL 迁移到 MariaDB 后,MariaDB 数据库实例将与原定设置数据库参数组和选项组关联。在还原数据库快照后,可以关联新数据库实例的自定义数据库参数组。不过,MariaDB 参数组具有一组不同的可配置系统变量。有关 MySQL 和 MariaDB 系统变量之间差异的信息,请参阅 MariaDB 和 MySQL 之间的系统变量差异
执行迁移
您可以使用 Amazon Web Services Management Console、Amazon CLI 或 RDS API 将 RDS for MySQL 数据库快照迁移到新的 MariaDB 数据库实例。
将 MySQL 数据库快照迁移到 MariaDB 数据库实例
-
登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择快照,然后选择您希望迁移的 MySQL 数据库快照。
-
对于 Actions(操作),请选择 Migrate snapshot(迁移快照)。随后将显示 Migrate database(迁移数据库)页。
-
对于迁移到数据库引擎,选择 mariadb。
Amazon RDS 将自动选择 DB engine version(数据库引擎版本)。您不能更改数据库引擎版本。
-
对于其余部分,请指定数据库实例设置。有关每项设置的信息,请参阅 数据库实例的设置。
-
选择 Migrate。
要将数据从 MySQL 数据库快照迁移到 MariaDB 数据库实例,请结合以下参数使用 Amazon 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-identifiermysqlsnapshot
\ --enginemariadb
对于 Windows:
aws rds restore-db-instance-from-db-snapshot ^ --db-instance-identifier
newmariadbinstance
^ --db-snapshot-identifiermysqlsnapshot
^ --enginemariadb
要将数据从 MySQL 数据库快照迁移到 MariaDB 数据库实例,请调用 Amazon RDS API 操作 RestoreDBInstanceFromDBSnapshot
。
MariaDB 和 MySQL 之间的不兼容性
MySQL 和 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 密码哈希,请确保使用 Amazon Web Services Management Console、
modify-db-instance
Amazon CLI 命令或 ModifyDBInstance RDS API 操作重置密码。有关修改数据库实例的信息,请参阅修改 Amazon RDS 数据库实例。MariaDB 不支持 Memcached 插件。不过,Memcached 插件使用的数据将存储为 InnoDB 表。在迁移 MySQL 数据库快照后,您可以使用 SQL 访问由 Memcached 插件使用的数据。有关 innodb_memcache 数据库的更多信息,请参阅 InnoDB 内存缓存插件内部信息
。