

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

# 將 Lightsail WordPress 執行個體連接至 Amazon Aurora 資料庫
<a name="amazon-lightsail-connect-wordpress-instance-to-aurora-database"></a>

文章、網頁和使用者等網站資料存放在資料庫中，該資料庫在 Amazon Lightsail 中的 WordPress 執行個體上執行。如果執行個體發生故障，這些資料可能會無法復原。為避免這種情況，應該將網站資料轉移至 Amazon Relational Database Service (Amazon RDS) 中的 Amazon Aurora 資料庫。

Amazon Aurora 是針對雲端建置的 MySQL 和 PostgreSQL 相容關聯式資料庫。它將傳統企業資料庫的效能和可用性與開源資料庫的簡易性和有效性相結合。Aurora 作為 Amazon RDS 的一部分提供。Amazon RDS 是一項受管資料庫服務，可以讓雲端中關聯式資料庫的設定、操作和擴展更加簡單。如需詳細資訊，請參閱《[Amazon 關聯式資料庫服務使用者指南》](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/)和《[Amazon Aurora 使用者指南》](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/)。

在本教學中，我們會為您展示如何將網站資料庫從 Lightsail 中的 WordPress 執行個體連接至 Amazon RDS 的 Aurora 受管資料庫。

**內容**
+ [步驟 1：完成先決條件](#connect-mysql-to-aurora-prerequisites)
+ [步驟 2：設定 Aurora 資料庫的安全群組](#configure-aurora-security-group)
+ [步驟 3：從 Lightsail 執行個體連接至 Aurora 資料庫](#connect-to-aurora-database-from-lightsail-instance)
+ [步驟 4：將 MySQL 資料庫從 WordPress 執行個體轉移到 Aurora 資料庫](#transfer-database-from-wordpres-to-aurora)
+ [步驟 5：設定 WordPress 以連接至 Aurora 受管資料庫](#connect-wordpress-to-aurora)

## 步驟 1：完成先決條件
<a name="connect-mysql-to-aurora-prerequisites"></a>

開始之前，請先完成以下先決條件：

1. 在 Lightsail 中建立一個 WordPress 執行個體，然後在其上設定您的應用程式。在繼續之前，執行個體應處於執行中狀態。如需詳細資訊，請參閱[教學課程：在 Amazon Lightsail 中啟動和設定 WordPress 執行個體](amazon-lightsail-tutorial-launching-and-configuring-wordpress.md)。

1. 打開 Lightsail 帳戶中的 VPC 對等互連。如需詳細資訊，請參閱[設定對等互連以使用 外部 AWS 的資源Lightsail](lightsail-how-to-set-up-vpc-peering-with-aws-resources.md)。

1. 在 Amazon RDS 中建立 Aurora 受管資料庫。資料庫必須位於與您的 WordPress 執行個體相同的 AWS 區域 中。在繼續之前，其亦應處於執行中狀態。如需詳細資訊，請參閱《Amazon Aurora 使用者指南》中的 [Amazon Aurora 入門](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.html)。

## 步驟 2：設定 Aurora 資料庫的安全群組
<a name="configure-aurora-security-group"></a>

 AWS 安全群組可做為 AWS 資源的虛擬防火牆。它控制可以連接到 Amazon RDS 中 Aurora 資料庫的傳入和傳出流量。如需詳細資訊，請參閱《Amazon Virtual Private Cloud 使用者指南》中的[使用安全群組控制資源流量](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)。

完成以下步驟來設定安全群組，以便 WordPress 執行個體可建立 Aurora 資料庫的連線。

1. 登入 [Amazon RDS 主控台](https://console.aws.amazon.com/rds/)。

1. 在導覽窗格中，選擇 **Databases** (資料庫)。

1. 選擇您的 WordPress 執行個體要連接之 Aurora 資料庫的 **Writer執行個體**。

1. 選擇 **Connectivity & security (連線和安全)** 索引標籤。

1. 在 **Endpoint & port** (端點與連接埠) 區段中，記下 **Writer instance** (寫入器執行個體) 的 **Endpoint name** (端點名稱) 和 **Port** (連接埠)。稍後在設定 Lightsail 執行個體以連接至資料庫時會需要這些。

1. 在 **Security** (安全) 區段中，選擇作用中的 VPC 安全群組連結。您會被重定引導至您資料庫的安全群組。  
![\[Amazon RDS 主控台的連線能力與安全性索引標籤螢幕截圖。\]](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/wp-aurora-db-select-writer-instance.png)

1. 確認已選取 Aurora 資料庫的安全群組。

1. 選擇 **Inbound Rules** (傳入規則) 索引標籤。

1. 選擇 **Edit inbound Rules** (編輯傳入規則)。  
![\[Amazon RDS 主控台的傳入規則索引標籤螢幕截圖。\]](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/wp-aurora-select-security-group.png)

1. 在 **Edit inbound rules** (編輯傳入規則) 頁面中，選擇 **Add rule** (新增規則)。

1. 完成下列其中一個步驟：
   + 如果您是使用預設的 MySQL 連接埠 3306，則在 **Type** (類型) 下拉式選單中選擇 **MySQL/Aurora**。
   + 如果資料庫是使用自訂連接埠，則在 **Type** (類型) 下拉選單中選擇 **Custom TCP** (自訂 TCP)，並在 **Port Range** (連接埠範圍) 文字方塊中輸入連接埠編號。

1. 在 **Source** (來源) 文字方塊中，新增您 WordPress 執行個體的私有 IP 地址。您必須以 CIDR 表示法輸入 IP 地址，這意味著您必須附加 `/32`。例如，若要允許 `192.0.2.0`，請輸入 `192.0.2.0/32`。

1. 選擇**儲存規則**。  
![\[Amazon RDS 主控台的傳入規則詳細資訊索引標籤螢幕截圖。\]](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/wp-aurora-add-security-group-rule.png)

## 步驟 3：從 Lightsail 執行個體連接至 Aurora 資料庫
<a name="connect-to-aurora-database-from-lightsail-instance"></a>

完成以下程序，以確認您能從 Lightsail 執行個體連接至 Aurora 資料庫。

1. 登入 [Lightsail 主控台](https://lightsail.aws.amazon.com/)。

1. 在左側導覽窗格中，選擇**執行個體**。  
![\[Lightsail 首頁。\]](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/wp-aurora-homepage-select-instances-tab.png)

1. 選擇瀏覽器型 SSH 用戶端圖示，讓 WordPress 執行個體使用 SSH 連接至用戶端。  
![\[瀏覽器型SSH 用戶端圖示。\]](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/wp-aurora-browser-based-ssh-client.png)

1. 在連接至執行個體後，輸入以下令命令以連接至 Aurora 資料庫。在命令中，將 *DatabaseEndpoint* 換成 Aurora 資料庫的端點地址，並將 *Port* 換成資料庫的連接埠。將 *MyUserName* 換成您建立資料庫時輸入的使用者名稱。

   ```
   mysql -h DatabaseEndpoint -P Port -u MyUserName -p
   ```

   您應該會看到類似以下範例的回應，其會確認您的執行個體可以存取並連接至 Aurora 資料庫。  
![\[MySQL 連接線成功的回應。\]](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/wp-aurora-mysql-connect-message.png)

   如果您沒有看到此回應，或者收到錯誤訊息，則可能需要將 Aurora 資料庫的安全群組設定為允許 Lightsail 執行個體的私有 IP 地址連接至該資料庫。如需詳細資訊，請參閱本指南的[設定 Aurora 資料庫的安全群組](#configure-aurora-security-group)章節。

## 步驟 4：將資料庫從 WordPress 執行個體轉移到 Aurora 資料庫
<a name="transfer-database-from-wordpres-to-aurora"></a>

現在您已確認能從執行個體連接至資料庫，接著應該將 WordPress 網站資料轉移到 Aurora 資料庫。

1. 登入 [Lightsail 主控台](https://lightsail.aws.amazon.com/)。

1. 在 **Instances** (執行個體) 索引標籤中，為 WordPress 執行個體選擇瀏覽器型 SSH 用戶端。  
![\[瀏覽器型 SSH 用戶端圖示。\]](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/wp-aurora-browser-based-ssh-client.png)

1. 在瀏覽器型 SSH 用戶端連接至 WordPress 執行個體後，輸入以下命令。該命令會轉移來自執行個體上 `bitnami_wordpress` 資料庫的資料，並將其移動到 Aurora 資料庫。在命令中，將 *DatabaseUserName* 換成建立 Aurora 資料庫時輸入的主要使用者名稱。將 *DatabaseEndpoint* 換成 Aurora 資料庫的端點地址。

   ```
   sudo mysqldump -u root --databases bitnami_wordpress --single-transaction --compress --order-by-primary -p$(cat /home/bitnami/bitnami_application_password) | sudo mysql -u DatabaseUserName --host  DatabaseEndpoint --password
   ```

   **範例**

   ```
   sudo mysqldump -u root --databases bitnami_wordpress --single-transaction --compress --order-by-primary -p$(cat /home/bitnami/bitnami_application_password) | sudo mysql -u DBuser --host  abc123exampleE67890.czowadgeezqi.us-west-2.rds.amazonaws.com --password
   ```

1. 出現 `Enter password` 提示時，輸入 Aurora 資料庫的密碼，然後按下 **Enter** 鍵。

   鍵入密碼時，您無法看到密碼。  
![\[密碼提示螢幕截圖。\]](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/wp-aurora-mysql-dump-1.png)

   如果資料轉移成功，即會顯示類似以下範例的回應。  
![\[轉移成功回應。\]](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/wp-aurora-mysql-dump-2.png)

   如果出現錯誤，請確認您所使用的資料庫使用者名稱、密碼和端點正確無誤，然後再試一次。

## 步驟 5：設定 WordPress 以連接至 Aurora 資料庫
<a name="connect-wordpress-to-aurora"></a>

在將應用程式資料轉移至 Aurora 資料庫之後，應該設定 WordPress 以連接至該資料庫。完成以下程序以編輯 WordPress 組態檔案 (`wp-config.php`)，將網站連接至 Aurora 資料庫。

1. 在連接至 WordPress 執行個體的瀏覽器型 SSH 用戶端中，輸入以下命令來建立 `wp-config.php` 檔案的備份。

   ```
   cp /opt/bitnami/wordpress/wp-config.php /opt/bitnami/wordpress/wp-config.php-backup
   ```

1. 輸入以下命令讓 `wp-config.php` 檔案為可寫入：

   ```
   sudo chmod 664 /opt/bitnami/wordpress/wp-config.php
   ```

1. 編輯 `config` 檔案中的資料庫使用者名稱，換成建立 Aurora 資料庫時輸入的主要使用者名稱。

   ```
   sudo wp config set DB_USER DatabaseUserName
   ```

1. 編輯 `config` 檔案中的資料庫主機，換成 Aurora 資料庫的端點地址和連接埠編號。例如 `abc123exampleE67890.czowadgeezqi.us-west-2.rds.amazonaws.com:3306`。

   ```
   sudo wp config set DB_HOST DatabaseEndpoint:Port
   ```

1. 編輯 `config` 檔案中的資料庫密碼，換成 Aurora 資料庫的密碼。

   ```
   sudo wp config set DB_PASSWORD DatabasePassword
   ```

1. 輸入 `wp config list` 命令驗證您在 `wp-config.php` 檔案中輸入的資訊為正確。

   ```
   sudo wp config list
   ```

   會出現類似以下範例的結果，顯示出您組態的詳細資訊：  
![\[WordPress 組態檔案。\]](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/wp-aurora-wpconfig.png)

1. 輸入以下命令，重新啟動執行個體上的 Web 服務。

   ```
   sudo /opt/bitnami/ctlscript.sh restart
   ```

   服務重新啟動時，會顯示類似以下範例的結果：  
![\[WordPress 執行個體重新啟動確認。\]](http://docs.aws.amazon.com/zh_tw/lightsail/latest/userguide/images/wp-aurora-service-restart.png)

   恭喜您！您的 WordPress 網站現已設定為使用您的 Aurora 資料庫。
**注意**  
如果您需要還原原始 `wp-config.php` 檔案，則可輸入以下命令，使用先前在本教學課程中建立的備份來進行還原。  

   ```
   cp /opt/bitnami/wordpress/wp-config.php-backup /opt/bitnami/wordpress/wp-config.php
   ```