

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用与 MySQL 兼容的数据库作为同构数据迁移的目标 AWS DMS
<a name="dm-data-providers-target-mysql"></a>

可以使用与 MySQL 兼容的数据库作为 AWS DMS中同构数据迁移的迁移目标。

AWS DMS 需要一定的权限才能将数据迁移到你的目标 Amazon RDS for MySQL、MariaDB 或 Amazon Aurora MySQL 数据库。可使用以下脚本，在 MySQL 目标数据库中创建具所需权限的数据库用户。

在此示例中，用您自己的信息替换每个*user input placeholder*信息。如果目标 MariaDB 数据库版本低于 10.5，则可以跳过 `GRANT SLAVE MONITOR` 命令。

```
CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password';

GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT, CREATE VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER, EXECUTE, REFERENCES ON *.* TO 'your_user'@'%';
GRANT REPLICATION SLAVE, REPLICATION CLIENT  ON *.* TO 'your_user'@'%'; GRANT SLAVE MONITOR  ON *.* TO 'your_user'@'%';
```

在前面的示例中，用您自己的信息替换每个*user input placeholder*示例。

可使用以下脚本，在 MariaDB 数据库中创建具所需权限的数据库用户。对您迁移到的所有数据库运行 GRANT 查询 AWS。

```
CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER, EXECUTE,SLAVE MONITOR, REPLICATION SLAVE ON *.* TO 'your_user'@'%';
```

在前面的示例中，用您自己的信息替换每个*user input placeholder*示例。

**注意**  
在 Amazon RDS 中，当您为 MySQL/Maria 数据库实例开启自动备份时，也会开启二进制日志记录。启用这些设置后，在目标数据库上创建二级对象（如函数、过程和触发器）时，数据迁移任务可能会失败，并出现以下错误。如果目标数据库启用了二进制日志记录，那么请在开始任务之前，在数据库参数组中将 `log_bin_trust_function_creators` 设置为 `true`。  

```
ERROR 1419 (HY000): You don't have the SUPER privilege and binary logging is enabled (you might want to use the less safe log_bin_trust_function_creators variable)
```

## 使用与 MySQL 兼容的数据库作为同构数据迁移的目标的限制
<a name="dm-data-providers-target-mysql-limitations"></a>

使用与 MySQL 兼容的数据库作为同构数据迁移的目标时，存在以下限制：
+ 用于连接到数据源的用户名具有以下限制：
  + 长度为 2 到 64 个字符。
  + 不能包含空格。
  + 可以包含以下字符：a-z、A-Z、0-9、下划线 (\$1)。
  + 不能包含连字符（-）。
  + 必须以 a-z 或 A-Z 开头。
+ 用于连接到数据源的密码具有以下限制：
  + 长度为 1 到 128 个字符。
  + 不能包含以下任何字符：单引号 (')、双引号 (")、分号 (;) 或空格。