

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

# 将 Lightsail WordPress 实例连接到亚马逊 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 Relational Database Service 用户指南](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/)和[适用于 Aurora 的 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 Lightsai WordPress l 中启动和配置实例](amazon-lightsail-tutorial-launching-and-configuring-wordpress.md)。

1. 在你的 Lightsail 账户中开启 VPC 对等互连。有关更多信息，请参阅[设置对等互连以使用 Lightsail 之外的 AWS 资源](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. 选择您的**实例将要连接的 Aurora 数据库的 Writer** WordPress 实例。

1. 选择**连接和安全性**选项卡。

1. 在 **Endpoint & port**（终端节点和端口），记下 **Writer instance**（写入器实例）的 **Endpoint name**（终端节点名称）和 **Port**（端口）。稍后在配置 Lightsail 实例以连接到数据库时，您将需要这些信息。

1. 在 **Security**（安全性）部分，选择活动 VPC 安全组的链接。您将会重新导向到数据库的安全组。  
![Amazon RDS 控制台的连接和安全性选项卡屏幕截图。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/wp-aurora-db-select-writer-instance.png)

1. 确保已经选中您的 Aurora 数据库的安全组。

1. 选择**入站规则**选项卡。

1. 选择 **Edit inbound rules**（编辑入站规则）。  
![Amazon RDS 控制台的入站规则选项卡屏幕截图。](http://docs.aws.amazon.com/zh_cn/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. 在**来源**文本框中，添加您的 WordPress 实例的私有 IP 地址。您必须以 CIDR 表示法输入 IP 地址，这意味着必须在地址后附加 `/32`。例如，要允许 `192.0.2.0`，请输入 `192.0.2.0/32`。

1. 选择**保存规则**。  
![Amazon RDS 控制台的入站规则详细信息屏幕截图。](http://docs.aws.amazon.com/zh_cn/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. 在左侧导航窗格中，选择 **Instances (实例)**。  
![Lightsail 主页。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/wp-aurora-homepage-select-instances-tab.png)

1. 为您的实例选择基于浏览器的 SSH 客户端图标，以便使用 SSH 连接到该 WordPress 实例。  
![基于浏览器的 SSH 客户端图标。](http://docs.aws.amazon.com/zh_cn/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_cn/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. 在**实例**选项卡中，为您的实例选择基于浏览器的 SSH 客户端。 WordPress   
![基于浏览器的 SSH 客户端图标。](http://docs.aws.amazon.com/zh_cn/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_cn/lightsail/latest/userguide/images/wp-aurora-mysql-dump-1.png)

   数据传输成功后，系统将会显示与以下示例类似的响应。  
![传输成功响应。](http://docs.aws.amazon.com/zh_cn/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. 使用 Aurora 数据库的端点地址和端口号编辑 `config` 文件中的数据库主机。例如 `abc123exampleE67890.czowadgeezqi.us-west-2.rds.amazonaws.com:3306`。

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

1. 使用 Aurora 数据库的密码编辑 `config` 文件中的数据库密码。

   ```
   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_cn/lightsail/latest/userguide/images/wp-aurora-wpconfig.png)

1. 输入以下命令以重新启动实例上的 Web 服务。

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

   在服务重新启动时，系统将会显示与以下示例类似的结果：  
![WordPress 实例重启确认。](http://docs.aws.amazon.com/zh_cn/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
   ```