如何在WordPress中使用Google Cloud SQL?

管理高流量的WordPress网站有很多挑战之一就是数据库。

数据库以使用高资源(如CPU,内存,IO)而闻名,因此将数据库单独托管是一个好主意。

一个典型的WordPress网站可能是以下这样的。

其中所有软件(如Nginx / Apache,PHP,WordPress,MySQL / MariaDB)都在同一台服务器上运行。

对于中小流量,将所有内容放在同一台服务器上是可以的,但是如果您正在优化每个层以实现最佳性能,那么您可能希望将数据库服务器解耦。

有两种可能的方式来实现这一点。

  • 将数据库托管到不同的服务器上
  • 使用Google Cloud Managed SQL

如果您准备花时间和精力来管理数据库,那么第一种选择是不错的。但是,如果您没有为此做好准备,那么您可以使用Google Cloud Managed SQL

什么是Google Cloud SQL?

Cloud SQL是Google提供的一种高性能托管数据库服务(MySQL,PostgreSQL,SQL Server)。您无需担心安装、管理和性能优化。

您只需按需付费,让Google处理数据库基础架构。

Google Cloud SQL可以与App Engine、Compute Engine或任何其他托管/服务(包括本地工作站)集成。设置数据库复制、高可用性、自动故障转移不需要数据库技能,您可以使用GCP控制台进行配置。

准备好看看Cloud SQL如何与WordPress配合工作了吗?

场景 – 我有一个托管在Google Cloud(Compute Engine)上的WordPress网站,其中所有内容都在一台服务器上运行。我将按照以下步骤分离数据库。

  • 创建Cloud SQL实例
  • 从现有MySQL数据库导出数据
  • 将数据导入Cloud SQL
  • 允许从现有的WordPress服务器连接到Cloud SQL
  • 更改WordPress配置以连接到Cloud SQL

创建Google Cloud SQL实例

  • 转到Cloud SQL,然后单击“创建实例”

  • 选择“MySQL”,然后点击“下一步”

  • 输入实例信息

  • 输入实例ID
  • 选择数据库版本(始终选择最新版本更好)
  • 选择区域和区域(我选择单个区域,可以随时进行高可用性设置)
  • 点击“显示配置选项”以自定义VM实例类型、备份、维护等

提示:始终首选将SQL实例放在与现有WordPress服务器相同的区域。但是,如果您的WordPress不在Google Cloud上,请选择距离您服务器最近的位置。

  • 保持默认选择的存储类型为SSD
  • 默认选择了自动备份,二进制日志记录 – 如果需要,请进行更改
  • 最好为补丁设置维护窗口和时间。

提示:始终选择对您的业务而言较不繁忙的日期和时间

  • 配置完成后,点击“创建实例”

创建需要一些时间,完成后您将在列表中看到该实例。

从现有数据库中导出数据

  • 登录正在运行MySQL的当前服务器
  • 使用mysqldump命令导出数据库
mysqldump -u root -p [DATABASE_NAME] >/tmp/export.sql

有一些其他导出过程,如Google docs中所述。

导出完成后,您需要将SQL文件上传到某个地方的S3区域。

将数据导入到Cloud SQL

让我们创建一个数据库,并将其名称保持不变。

  • 转到SQL instance
  • 从左侧导航面板中选择数据库 >> 创建数据库
  • 输入数据库名称并点击创建

现在,是时候导入数据了。

  • 转到实例的概览并点击导入按钮
  • 从存储桶中选择在导出过程中上传的SQL文件
  • 选择目标下的数据库

  • 点击导入

这将需要几秒钟的时间,并在完成后会得到确认。

配置Cloud SQL访问权限

访问控制非常重要,因为这是您定义谁可以连接到实例的地方。有两部分组成。

授权网络 – 添加应允许连接到Cloud SQL实例的IP地址

  • 转到连接 >> 添加网络(如果WordPress托管在GCP之外,则为公共IP;如果托管在Google Cloud VM上,则为私有IP)并输入IP地址。

用户帐户 – 最好为WordPress数据库创建一个单独的用户帐户。

  • 转到用户 >> 添加用户帐户
  • 输入用户、密码和允许访问的主机名

提示:您可以将用户和密码保持不变,以便在WordPress中最小限度地更改配置。

将WordPress配置为Cloud SQL

最后一部分,您需要更改wp-config.php以指向Cloud SQL。

像往常一样,备份wp-config.php文件

使用vi编辑文件,并更新DB_HOST的值为Cloud SQL的IP地址

/** MySQL 主机名 */
define('DB_HOST', 'localhost');

/** MySQL 主机名 */
define('DB_HOST', '104.155.153.82');

104.155.153.82是我的Cloud SQL实例IP,您可以在概览页面找到。

保存文件并重新启动WordPress服务器上的PHP和Nginx

注意:您也可以使用来自Compute Engine的MySQL客户端连接到Cloud SQL实例,地址为explained here

干得好!您已经成功分离了WordPress数据库。

尝试访问以确保它正常工作。一切正常后,您可能想在WordPress服务器上停止MySQL

停止MySQL

如果您对Google CloudSQL满意,可以考虑停止在服务器上运行的MySQL。

如果使用Ubuntu 16.x

service mysql stop

这将停止,但在服务器重新启动时会再次启动,因此接下来您需要禁用自动启动。

update-rc.d mysql disable

对于CentOS 6.x

service mysqld stop

并禁用自动启动

chkconfig --del mysqld

您可能还想卸载MySQL,但我建议将其保留安装,以备将来在本地使用。

在Google Cloud上获取托管的MySQL非常简单,我没有遇到任何问题。

如果您需要将数据库从WordPress服务器中拆分出来,那么Google Cloud SQL将是一个不错的选择。试试看它的效果。

不熟悉配置修改、服务器管理相关的内容吗?利用managed Google Cloud platform for WordPress

类似文章