将 MySQL 用作 AWS SCT 的源
您可以使用 AWS SCT 将架构、数据库代码对象和应用程序代码从 MySQL 转换到以下目标:
Amazon RDS for PostgreSQL
Amazon Aurora PostgreSQL 兼容版
Amazon RDS for MySQL
有关详细信息,请参阅以下章节:
将 MySQL 用作源数据库的权限
下面是将 MySQL 用作源所需的权限:
-
SELECT ON *.*
-
SHOW VIEW ON *.*
连接到作为源的 MySQL
使用 AWS Schema Conversion Tool 按照以下过程连接到 MySQL 源数据库。
连接到 MySQL 源数据库
-
在 AWS Schema Conversion Tool 中,选择添加源。
-
选择 MySQL,然后选择下一步。
此时显示添加源对话框。
-
对于连接名称,输入数据库的名称。AWS SCT 会在左侧面板的树中显示此名称。
-
使用来自 AWS Secrets Manager 的数据库凭证或手动输入:
-
要使用 Secrets Manager 中的数据库凭证,请按照以下说明进行操作:
-
对于 AWS 密钥,请选择密钥的名称。
-
选择填充可使用 Secrets Manager 中的数据库凭证自动填写数据库连接对话框中的所有值。
有关使用 Secrets Manager 中的数据库凭证的信息,请参阅 在 AWS Schema Conversion Tool 中配置 AWS Secrets Manager。
-
-
要手动输入 MySQL 源数据库连接信息,请按照以下说明进行操作:
参数 操作 服务器名称 输入源数据库服务器的域名系统(DNS)名称或 IP 地址。
您可以使用 IPv6 地址协议连接到源 MySQL 数据库。为此,请确保使用方括号输入 IP 地址,如以下示例所示。
[2001:db8:ffff:ffff:ffff:ffff:ffff:fffe]
服务器端口 输入用于连接到源数据库服务器的端口。
用户名和密码 输入数据库凭证,以便连接到源数据库服务器。
仅当您选择连接到项目中的数据库时,AWS SCT 才使用密码连接到源数据库。为了避免泄露源数据库的密码,AWS SCT 不会默认存储该密码。如果您关闭了 AWS SCT 项目并重新打开它,系统会根据需要提示您输入用于连接到源数据库的密码。
使用 SSL 选择此选项以使用安全套接字层 (SSL) 连接到数据库。在 SSL 选项卡上提供以下其他信息(如适用):
-
需要 SSL:选择此选项仅通过 SSL 连接到服务器。
如果您选择 Require SSL,则意味着如果服务器不支持 SSL,您将无法连接到服务器。如果您不选择 Require SSL 且服务器不支持 SSL,您仍然可以在不使用 SSL 的情况下连接到服务器。有关更多信息,请参阅配置 MySQL 以使用安全连接
。 -
验证服务器证书:选择此选项以使用信任存储验证服务器证书。
-
信任存储:包含证书的信任存储的位置。
存储密码 AWS SCT 将创建一个安全文件库,用于存储 SSL 证书和数据库密码。启用此选项可让您存储数据库密码并在不需要输入密码的情况下快速连接到数据库。
MySql 驱动程序路径 输入用于连接到源数据库的驱动程序的路径。有关更多信息,请参阅 为 AWS Schema Conversion Tool 安装 JDBC 驱动程序。
如果您将驱动程序路径存储在全局项目设置中,则驱动程序路径不会显示在连接对话框中。有关更多信息,请参阅 在全局设置中存储驱动程序路径。
-
-
-
选择测试连接以验证 AWS SCT 是否可以连接到源数据库。
-
选择连接以连接到源数据库。
将 PostgreSQL 用作目标数据库的权限
要使用 PostgreSQL 作为目标,AWS SCT 需要 CREATE ON DATABASE
权限。请确保为每个目标 PostgreSQL 数据库授予此权限。
要使用转换后的公共同义词,请将数据库的默认搜索路径更改为 "$user", public_synonyms, public
。
您可以使用以下代码示例创建数据库用户并授予权限。
CREATE ROLE
user_name
LOGIN PASSWORD 'your_password
'; GRANT CREATE ON DATABASEdb_name
TOuser_name
; ALTER DATABASEdb_name
SET SEARCH_PATH = "$user", public_synonyms, public;
在前面的示例中,将 user_name
替换为用户名。然后,将 db_name
替换为目标数据库名称。最后,将 your_password
替换为安全密码。
在 PostgreSQL 中,只有架构所有者或 superuser
才能删除架构。即使架构的所有者并不拥有架构的某些对象,该所有者也可以删除该架构及其包含的所有对象。
使用不同的用户转换不同的架构并将其应用到目标数据库时,若 AWS SCT 无法删除架构,您可能会收到一条错误消息。要避免出现此错误消息,请使用 superuser
角色。