介紹
不少互聯網應用程序開發人員第一個接觸到的網站項目就是博客系統。而全球使用最廣的Wordpress經常被用戶用來快速搭建我的博客網站。默認狀況下,Wordpress通常在後臺使用MySQL關係型數據庫存儲全部的博文及回覆。本文將展現如何使用 SequoiaDB 巨杉分佈式數據庫替換MySQL,成爲Wordpress博客系統的後臺關係型數據庫。php
經過閱讀本文,用戶能夠了解到如何使用SequoiaDB巨杉數據庫的MySQL實例無縫替換標準MySQL數據庫。SequoiaDB巨杉數據庫容許用戶在不更改一行代碼的狀況下直接對已有應用進行後臺MySQL數據庫遷移。html
經過使用SequoiaDB巨杉數據庫,用戶能夠獲得:
水平彈性擴張
100%全兼容MySQL
優秀的交易性能mysql
WordPress是使用PHP語言開發的博客平臺,用戶能夠在支持PHP和MySQL數據庫的服務器上架設屬於本身的網站,也能夠把 WordPress看成一個內容管理系統(CMS)來使用。linux
WordPress有許多第三方開發的免費模板,安裝方式簡單易用。同時,WordPress官方支持中文版,並擁有成千上萬個各式插件和不可勝數的主題模板樣式。sql
安裝SequoiaDB
本文使用Linux Ubuntu Server 18.10做爲服務器,SequoiaDB巨杉數據庫版本爲3.2.1。數據庫
本教程默認使用sudo用戶名密碼爲「sequoiadb:sequoiadb」,默認home路徑爲/home/sequoiadb。apache
對於使用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_posts",
"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_posts來講,其表結構顯示數據根據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協議的基礎上,實現近無限的彈性擴展能力。