

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 MySQL 做為 的來源 AWS SCT
<a name="CHAP_Source.MySQL"></a>

您可以使用 AWS SCT 將結構描述、資料庫程式碼物件和應用程式程式碼從 MySQL 轉換為下列目標：
+ Amazon RDS for PostgreSQL
+ Amazon Aurora PostgreSQL-Compatible Edition
+ 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 \*.\* 
+ SHOW VIEW ON \*.\* 

## 以來源身分連線至 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 Secret**，選擇秘密的名稱。

     1. 選擇**填入**，從 Secrets Manager 自動填入資料庫連線對話方塊中的所有值。

     如需從 Secrets Manager 使用資料庫登入資料的資訊，請參閱 [在 AWS Secrets Manager 中設定 AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)。
   + 若要手動輸入 MySQL 來源資料庫連線資訊，請使用下列指示：



<table>
<thead>
  <tr><th>參數</th><th>動作</th></tr>
</thead>
<tbody>
  <tr><td><b>伺服器名稱</b></td><td>輸入來源資料庫伺服器的網域名稱系統 (DNS) 名稱或 IP 地址。<br />您可以使用 IPv6 地址通訊協定連線至來源 MySQL 資料庫。若要這樣做，請確定您使用方括號輸入 IP 地址，如下列範例所示。<pre>[2001:db8:ffff:ffff:ffff:ffff:ffff:fffe]</pre></td></tr>
  <tr><td><b>伺服器連接埠</b></td><td>輸入用於連接到來源資料庫伺服器的連接埠。</td></tr>
  <tr><td><b>使用者名稱</b>和<b>密碼</b></td><td>輸入資料庫登入資料以連線至來源資料庫伺服器。<br />AWS SCT 只有在您選擇連線到專案中的資料庫時， 才會使用密碼來連線至來源資料庫。為了防止公開來源資料庫的密碼， 預設 AWS SCT 不會存放密碼。如果您關閉 AWS SCT 專案並重新開啟，系統會視需要提示您輸入密碼以連線至來源資料庫。</td></tr>
  <tr><td><b>Use SSL (使用 SSL)</b></td><td>選擇此選項，使用 Secure Sockets Layer (SSL) 連線至您的資料庫。在 <b>SSL</b> 標籤上提供下列適用的額外資訊：<ul><li> <b>需要 SSL</b>：選擇此選項僅透過 SSL 連線至伺服器。 <br />如果您選擇 <b>Require SSL</b> (需要 SSL)，這表示如果伺服器不支援 SSL，您就無法連接到伺服器。如果您不選擇 <b>Require SSL</b> (需要 SSL) 且伺服器不支援 SSL，您仍然可以不使用 SSL 而連接到伺服器。如需詳細資訊，請參閱<a href="https://dev.mysql.com/doc/mysql-secure-deployment-guide/5.7/en/secure-deployment-secure-connections.html">設定 MySQL 使用安全連線</a>。 </li><li> <b>驗證伺服器憑證</b>：選取此選項，使用信任存放區驗證伺服器憑證。 </li><li> <b>信任存放</b>區：包含憑證的信任存放區位置。 </li></ul></td></tr>
  <tr><td><b>存放密碼</b></td><td>AWS SCT 會建立安全保存庫來存放 SSL 憑證和資料庫密碼。啟用此選項可讓您存放資料庫密碼，並快速連接到資料庫而無需輸入密碼。</td></tr>
  <tr><td><b>MySql 驅動程式路徑</b></td><td>輸入用於連接至來源資料庫的驅動程式路徑。如需詳細資訊，請參閱<a href="CHAP_Installing.JDBCDrivers.md">安裝 的 JDBC 驅動程式 AWS Schema Conversion Tool</a>。<br />如果您在全域專案設定中存放驅動程式路徑，驅動程式路徑不會顯示在連線對話方塊中。如需詳細資訊，請參閱<a href="CHAP_Installing.JDBCDrivers.md#CHAP_Installing.JDBCDrivers.Settings">在全域設定中存放驅動程式路徑</a>。</td></tr>
</tbody>
</table>


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\_name}} 替換為您的使用者名稱。然後，將 {{db\_name}} 取代為目標資料庫的名稱。最後，使用安全密碼取代{{您的\_password}}。

在 PostgreSQL 中，只有結構描述擁有者或 `superuser` 可以刪除結構描述。即使結構描述的擁有者不擁有其部分物件，擁有者也可以捨棄結構描述和此結構描述包含的所有物件。

當您使用不同的使用者來轉換和套用不同的結構描述到目標資料庫時，當 AWS SCT 無法捨棄結構描述時，您可能會收到錯誤訊息。若要避免此錯誤訊息，請使用 `superuser` 角色。