

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

# 使用 MySQL 作为源代码 AWS SCT
<a name="CHAP_Source.MySQL"></a>

您可以使用 AWS SCT 将架构、数据库代码对象和应用程序代码从 MySQL 转换为以下目标：
+ Amazon RDS for PostgreSQL
+ Amazon Aurora PostgreSQL 兼容版
+ Amazon RDS for MySQL

有关详细信息，请参阅以下章节：

**Topics**
+ [将 MySQL 用作源数据库的权限](#CHAP_Source.MySQL.Permissions)
+ [连接到作为源的 MySQL](#CHAP_Source.MySQL.Connecting)
+ [将 PostgreSQL 用作目标数据库的权限](#CHAP_Source.MySQL.ConfigurePostgreSQL)

## 将 MySQL 用作源数据库的权限
<a name="CHAP_Source.MySQL.Permissions"></a>

下面是将 MySQL 用作源所需的权限：
+ SELECT ON \$1.\$1 
+ SHOW VIEW ON \$1.\$1 

## 连接到作为源的 MySQL
<a name="CHAP_Source.MySQL.Connecting"></a>

使用 AWS Schema Conversion Tool按照以下过程连接到 MySQL 源数据库。

**连接到 MySQL 源数据库**

1. 在中 AWS Schema Conversion Tool，选择**添加来源**。

1. 选择 **MySQL**，然后选择**下一步**。

   此时显示**添加源**对话框。

1. 对于**连接名称**，输入数据库的名称。 AWS SCT 会在左侧面板的树中显示此名称。

1. 使用来自的数据库凭据 AWS Secrets Manager 或手动输入：
   + 要使用 Secrets Manager 中的数据库凭证，请按照以下说明进行操作：

     1. 对于 **AWS 密钥**，请选择密钥的名称。

     1. 选择**填充**可使用 Secrets Manager 中的数据库凭证自动填写数据库连接对话框中的所有值。

     有关使用 Secrets Manager 中的数据库凭证的信息，请参阅 [AWS Secrets Manager 在中配置 AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)。
   + 要手动输入 MySQL 源数据库连接信息，请按照以下说明进行操作：  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/SchemaConversionTool/latest/userguide/CHAP_Source.MySQL.html)

1. 选择 “**测试连接**” 以验证是否 AWS SCT 可以连接到您的源数据库。

1. 选择**连接**以连接到源数据库。

## 将 PostgreSQL 用作目标数据库的权限
<a name="CHAP_Source.MySQL.ConfigurePostgreSQL"></a>

要使用 PostgreSQL 作为目标 AWS SCT ，需要权限。`CREATE ON DATABASE`请确保为每个目标 PostgreSQL 数据库授予此权限。

要使用转换后的公共同义词，请将数据库的默认搜索路径更改为 `"$user", public_synonyms, public`。

您可以使用以下代码示例创建数据库用户并授予权限。

```
CREATE ROLE user_name LOGIN PASSWORD 'your_password';
GRANT CREATE ON DATABASE db_name TO user_name;
ALTER DATABASE db_name SET SEARCH_PATH = "$user", public_synonyms, public;
```

在前面的示例中，*user\$1name*使用您的用户名替换。然后，*db\$1name*替换为目标数据库的名称。最后，*your\$1password*替换为安全密码。

在 PostgreSQL 中，只有架构所有者或 `superuser` 才能删除架构。即使架构的所有者并不拥有架构的某些对象，该所有者也可以删除该架构及其包含的所有对象。

当你使用不同的用户转换不同的架构并将其应用到目标数据库时，当无法删除架构时，你 AWS SCT 可能会收到一条错误消息。为避免此类错误消息，请使用 `superuser` 角色。