共计 3617 个字符,预计需要花费 10 分钟才能阅读完成。
介绍
很多互联网应用程序开发人员第一个接触到的网站项目就是博客系统。而全球使用最广的 Wordpress 常常被用户用来快速搭建个人博客网站。默认情况下,Wordpress 一般在后台使用 MySQL 关系型数据库存储所有的博文及回复。本文将展示如何使用 SequoiaDB 巨杉分布式数据库替换 MySQL,成为 Wordpress 博客系统的后台关系型数据库。
通过阅读本文,用户可以了解到如何使用 SequoiaDB 巨杉数据库的 MySQL 实例无缝替换标准 MySQL 数据库。SequoiaDB 巨杉数据库允许用户在不更改一行代码的情况下直接对已有应用进行后台 MySQL 数据库迁移。
通过使用 SequoiaDB 巨杉数据库,用户可以得到:
水平弹性扩张
100% 全兼容 MySQL
优秀的交易性能
WordPress 是使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设属于自己的网站,也可以把 WordPress 当作一个内容管理系统(CMS)来使用。
WordPress 有许多第三方开发的免费模板,安装方式简单易用。同时,WordPress 官方支持中文版,并拥有成千上万个各式插件和不计其数的主题模板样式。
安装 SequoiaDB
本文使用 Linux Ubuntu Server 18.10 作为服务器,SequoiaDB 巨杉数据库版本为 3.2.1。
本教程默认使用 sudo 用户名密码为“sequoiadb:sequoiadb”,默认 home 路径为 /home/sequoiadb。
对于使用 CentOS 等其他 Linux 版本的用户,本文所描述的流程可能略有不同,需要根据实际情况自行调整。
1)下载并安装 SequoiaDB 巨杉数据库
$ wget http://cdn.sequoiadb.com/imag…
$ tar -zxvf sequoiadb-3.2.1-linux_x86_64.tar.gz
$ cd sequoiadb-3.2.1/
$ sudo ./setup.sh
之后一直回车确认各个默认参数即可。
2)使用数据库实例用户创建默认实例
$ sudo su sdbadmin
$ /opt/sequoiadb/tools/deploy/quickDeploy.sh
3)连接数据库并开启事务功能并设置默认隔离级别 RC
$ /opt/sequoiadb/bin/sdb
db = new Sdb() ;
db.updateConf ({ transactionon: true, transisolation: 1} ) ;
quit ;
$ /opt/sequoiadb/bin/sdbstop
$ /opt/sequoiadb/bin/sdbstart
安装 Apache 与 PHP
更新系统包并安装 Apache 与 PHP
$ sudo apt-get update
$ sudo apt-get install apache2 php libapache2-mod-php php-mysql unzip php-xml
安装 Wordpress
本教程使用 Wordpress 5.2.1。
1)登录 Wordpress 官网下载页面 https://wordpress.org/downloa…
或登录 sequoiadb 用户,使用 wget 下载安装包
$ wget https://wordpress.org/wordpre…
2)安装 Wordpress 并配置
$ tar -zxvf wordpress-5.2.1.tar.gz
$ cd wordpress
$ sudo rm /var/www/html/*
$ sudo cp -R * /var/www/html/
$ sudo cp /var/www/html/wp-config-sample.php /var/www/html/wp-config.php
$ sudo chown www-data:www-data /var/www/html/*
3)更改配置文件
$ sudo vi /var/www/html/wp-config.php
define(‘DB_NAME’, ‘database_name_here’); 变为 define(‘DB_NAME’, ‘wordpress’);
define(‘DB_USER’, ‘username_here’); 变为 define(‘DB_USER’,‘sequoiadb’);
define(‘DB_PASSWORD’, ‘password_here’); 变为 define(‘DB_PASSWORD’, ‘sequoiadb’);
define(‘DB_HOST’, ‘localhost’); 变为 define(‘DB_HOST’,‘< 服务器 IP 地址 >’);
4)创建 Wordpress 数据库
$ sudo su sdbadmin
$ /opt/sequoiasql/mysql/bin/mysql -S /opt/sequoiasql/mysql/database/3306/mysqld.sock -u root
mysql> create user ‘sequoiadb’@’localhost’ identified by ‘sequoiadb’;
mysql> create database wordpress;
mysql> grant all on wordpress.* to‘sequoiadb’@’localhost’;
mysql> grant all privileges on . to ‘sequoiadb’@’%’ identified by ‘sequoiadb’ with grant option;
mysql> exit
5)确认表被分散在多个分区
$ /opt/sequoiadb/bin/sdb
db=new Sdb() ;
db.snapshot(SDB_SNAP_CATALOG) ;
……
{
“_id”: {
"$oid": "5cecf121116eae6117df17dc"
},
“Name”: “wordpress.wp_posts1”,
“UniqueID”: 4294967308,
“Version”: 1,
“ReplSize”: -1,
“Attribute”: 1,
“AttributeDesc”: “Compressed”,
“CompressionType”: 1,
“CompressionTypeDesc”: “lzw”,
“ShardingKey”: {
"ID": 1
},
“EnsureShardingIndex”: false,
“ShardingType”: “hash”,
“Partition”: 4096,
“InternalV”: 3,
“CataInfo”: [
{
"ID": 0,
"GroupID": 1000,
"GroupName": "group1",
"LowBound": {"": 0},
"UpBound": {"": 1365}
},
{
"ID": 1,
"GroupID": 1001,
"GroupName": "group2",
"LowBound": {"": 1365},
"UpBound": {"": 2730}
},
{
"ID": 2,
"GroupID": 1002,
"GroupName": "group3",
"LowBound": {"": 2730},
"UpBound": {"": 4096}
}
],
“AutoSplit”: true,
“AutoIncrement”: [
{
"SequenceName": "SYS_4294967308_ID_SEQ",
"Field": "ID",
"Generated": "default",
"SequenceID": 11
}
]
}
……
其中针对每个表的 CataInfo 字段为该表分散在不同分区的一致性散列范围,而分区键则为 ShardingKey 字段。对于 wp_posts1 来说,其表结构显示数据根据 ID 字段进行散列切分,数据被打散至集群的三个分区中。
配置 Wordpress
1)通过浏览器登录服务器 IP 地址
Site Title: SDBWordpress
Username: sequoiadb
Password: sequoiadb
选择 Confirm use of weak password
Your Email: test@test.com
点击 Install WordPress 按键,得到安装成功界面
2)使用 sequoiadb:sequoiadb 作为用户名密码登录
3)更换桌面主题
4)回到 Wordpress 博客首页,可以尝试更改博客内容或添加评论
简单编辑文章后
结论
SequoiaDB 巨杉数据库作为一款分布式数据库,提供包括结构化 SQL、非结构化文件系统和对象存储的机制。
通过 SequoiaDB 创建的 MySQL 实例,能够提供与标准 MySQL 全兼容的 SQL 与 DDL 能力,用户无需调整 DDL 或 SQL 即可实现无缝透明地访问分布式表结构。
本文向读者展示了如何通过 SequoiaDB 的 MySQL 实例,实现与标准 MySQL 的无缝迁移。通过使用 SequoiaDB 巨杉数据库,用户可以在满足标准 ACID 与 MySQL 协议的基础上,实现近无限的弹性扩展能力。