利用mycat讀寫分離搭建wordpress博客網站


實驗環境

以下配置都是建立在mariadb主從沒有問題的情況下:

1.三台主機:
在三台機器/etc/hosts添加以下3條主機信息(mycat和wordpress在一台機器上面) mycat:
192.168.254.24 hostM1:192.168.254.28 hostS1:192.168.254.29 2.需要安裝java1.8版本或以上
3.wordpress需要5.6版本以上的php,你下載5.4的也沒有關系,后面我會告訴大家怎么去修改
4.下載mycat源碼包 (1wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz2tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz (3mv mycat /usr/local/

實驗架構

mycat配置

vim /usr/local/mycat/conf/server.xml設置如下參數

<user name="testuser1">
<property name="password">testuser1</property>
<property name="schemas">testdb,testdb1</property>
</user>
<user name="testuser2">
<property name="password">testuser2</property>
<property name="schemas">testdb,testdb1</property>
<property name="readOnly">true</property>
</user>

#testuser1用來寫的用戶
#testuser2用來讀的用戶
#testdb是mycat是邏輯庫

 

vim /usr/local/mycat/conf/schema.xml配置(請先備份cp schema.xml schema.xml.bak,然后把schema.xml文件清空,粘貼以下內容)

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="testdb" checkSQLschema="false" sqlMaxLimit="1000" dataNode="dn1">
</schema>
<schema name="testdb1" checkSQLschema="false" sqlMaxLimit="1000" dataNode="dn2">
</schema>

<dataNode name="dn1" dataHost="hostM1" database="test" />
<dataNode name="dn2" dataHost="hostM1" database="test1" />
<dataHost name="hostM1" maxCon="2000" minCon="1" balance="1" writeType="1" dbType="mysql" dbDriver="native" switchType=
"1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="192.168.254.28:3306" user="testuser1" password="testuser1">
<readHost host="hostS1" url="192.168.254.29:3306" user="testuser2" password="testuser2" />
</writeHost>
</dataHost>
</mycat:schema>

 

 

server.xml和schema.xml標綠色處要一致,都是邏輯庫,我這里創建了2個邏輯庫

dataHost為數據節點名稱,database為真實數據庫名稱即后台數據庫test和test1

 

balance:

0表示不開啟讀寫分離,都在master上執行讀寫操作

1表示都參與select

2表示所有讀請求隨機在readhost和writehost分擔

3表示所有讀請求對應到readhost里去

 

writeType

0,所有寫操作發送到配置的第一個writeHost

1,所有寫操作都隨機的發送到配置的writeHost

2,不執行寫操作。

 

switchType

-1,不自動切換

1,默認值,自動切換

2,基於MySQL 主從同步的狀態決定是否切換

3,基於MySQL galary cluster的切換機制(適合集群)(1.4.1),心跳語句為 show status like &lsquo;wsrep%&rsquo;

writeHost和readHost分別配置對應后台的mysql主從真實用戶密碼

 

創建用戶並賦予權限(主創建同步到從)

grant all on *.* to testuser1@'%' identified by 'testuser1';
grant all on *.* to testuser2@'%' identified by 'testuser2';

 

啟動mycat服務並查看端口

/usr/local/mycat/bin/mycat start

8066是管理端口

9066是連接后端數據庫的端口,默認是9066,登錄該端口后直接用show @@datasource;語句即可查詢主從庫的讀寫狀態

 

mysql -h 192.168.254.24 -P8066 -utestuser1 -ptestuser1    (可以執行增刪改查)

mysql -h 192.168.254.24 -P9066 -utestuser1 -ptestuser1     (可以查看節點狀態)

 

查看心跳狀態

show @@heartbeat\G

 

#查看前端連接狀態

show @@connection\G

 

#查看后端狀態

show @@backend\G

 

 #查看數據庫資源狀態

show @@datasource

搭建wordpress

下載wordpress安裝包

[root@localhost ~]# wget https://cn.wordpress.org/latest-zh_CN.zip
[root@localhost ~]# unzip latest-zh_CN.zip
[root@localhost ~]# cp -a wordpress/ /var/www/html/

把請求php的版本調到5.4.0

 [root@localhost html]# vim wordpress/wp-includes/version.php
            $required_php_version = '5.4.0'; 

 修改php文件

[root@localhost wordpress]# mv wp-config-sample.php wp-config.php
[root@localhost wordpress]# vim wp-config.php
改成如下圖:

 

 瀏覽器輸入:http://hostip/wordpress,走一遍向導,OK

驗證:

我們可以在博客上隨便添加個用戶,或者寫個文章等,只要能記錄到數據庫當中就可以,然后我們可以利用上面查看在mycat的查看命令查看是否讀寫分離

思考

我們也可以對mycat做高可用,並且還能負載均衡,這里的wp代表wordpress如下拓撲圖你是否能自己完成?

  ok,沒有問題,打包收工!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM