數據庫中間件mycat實現數據庫讀寫分離

MYCAT實現讀寫分離 MYCAT是國內公司開發的 款數據庫中間件
在主從複製的基礎上,我們可以使 MYcat來實現讀寫分離,提高數據庫的效率 實現環境爲rhel7
兩臺主機已經配置好 主從複製
讀寫分離的機制大體如下
這裏寫圖片描述
首先我們需要挑選一個mycat主機
先關閉防火牆
systemctl stop firewalld
配置好java環境
yum install java -y
查看一下版本,不能太低不然和mycat不兼容
java -version
java version “1.7.0_51”
OpenJDK Runtime Environment (rhel-2.4.5.5.el7-x86_64 u51-b31)
OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)
然後解壓mycat的壓縮包到/usr/local/mycat
在/etc/profile修改環境變量
vim /etc/prifile
添加如下
export MYCAT_HOME=/usr/local/mycat
export PATH=$PATH:MYCAT_HOME/bin
然後使其生效
source /etc/profile

進入mycat的配置目錄下
cd /usr/local/mycat/conf
修改兩個文件schema.xml與server.xml
schema.xml編輯如下

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/" >
    <!--設定了邏輯庫-->
        <schema name="xiaobai_schema" checkSQLschema="false" sqlMaxLimit="100"></schema>
        <!--設定了數據節點-->
           <dataNode name="xiaobaiNode" dataHost="dHost" database="xiaobai">
             <dataHost name="dtHost" maxCon="500" minCon="20" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="2" slaveThreshold="100">
                <heartbeat>show slave status</heartbeat>
        <!--配置後臺兩個數據庫的地址,還有登陸的用戶和密碼-->
                <writeHost host="hostMaster" url="172.25.254.41:3306" user="root" password="2523392" />
                <writeHost host="hostSlave" url="172.25.254.41:3306" user="root" password="2523392" />
        </dataHost>
</mycat:schema>

server.xml編輯如下

<?xml version="1.0" encoding="UTF-8"?>
<!-- - - Licensed under the Apache License, Version 2.0 (the "License"); 
        - you may not use this file except in compliance with the License. - You 
        may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 
        - - Unless required by applicable law or agreed to in writing, software - 
        distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT 
        WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the 
        License for the specific language governing permissions and - limitations 
        under the License. -->
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://org.opencloudb/">
        <system>
                <property name="defaultSqlParser">druidparser</property>
                <property name="charset">utf8mb4</property>
        </system>
        <user name="user1">
                <property name="password">2523392</property>
                <property name="schemas">xiaobai_schema</property>
        </user>

        <user name="user2">
                <property name="password">2523392</property>
                <property name="schemas">xiaobai_schema</property>
                <property name="readOnly">true</property>
        </user>
        <!-- 
        <quarantine> 
           <whitehost>
              <host host="127.0.0.1" user="mycat"/>
              <host host="127.0.0.2" user="mycat"/>
           </whitehost>
       <blacklist check="false"></blacklist>
        </quarantine>
        -->
</mycat:server>

配置完以後即可啓動mycat
我們進入mycat啓動腳本目錄

./mycat start

在數據庫中可以使用命令來連接mycat

mysql -uuser2 -h172.25.254.141 -uuser2 -p8066 -p
Enter password:

來連接
測試
我們可以先連接到mycat嘗試insert 條內容在xiaobai數據庫下的status表中
這裏寫圖片描述
這個結果發現inser操作被 由到 41這個主機上,就是我們之前設置的master 然後我們測試select操作,select * from status;
發現讀這個操作被錄由到 我們slave主機上,測試讀寫分離配置成功
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章