MySQL 中間件 Mycat 安裝與使用 - 讀寫分離

環境

        Windows (mycat)
        Linux 虛擬機(主庫)
        Linux 虛擬機(從褲)
    
        注:主從同步需要自己配置,參考 有道:mysql主從同步配置.note ,Blog:MySQL 主從同步配置

下載


        百度網盤下載
        整個git倉庫下載(2016-07-06,鏈接:http://pan.baidu.com/s/1o86bSbo 密碼:ad4a)
        Windows 環境下載(http://pan.baidu.com/s/1miRKZpe
        Linux環境下載(http://pan.baidu.com/s/1i4BvQJz

Windows 使用

1. 解壓Windows包

2. 配置

        修改conf下的server.xml(配置mycat用戶名)
1
2
3
4
5
6
7
8
9
10
11
12
<mycat:server xmlns:mycat="http://org.opencloudb/">
 
    <system>
        <property name="defaultSqlParser">druidparser</property>
    </system>
 
    <user name="mycat">
        <property name="password">mycat</property>
        <property name="schemas">test_schema</property>
    </user>
     
</mycat:server>

        修改conf下的schema.xml(配置讀寫分離)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<mycat:schema xmlns:mycat="http://org.opencloudb/" >
 
    <schema name="test_schema" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>
 
    <dataNode name="dn1" dataHost="testhost" database="test_mycat" />
 
    <dataHost name="testhost" maxCon="1000" minCon="10" balance="1" dbType="mysql" dbDriver="native" slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <!-- can have multi write hosts -->
        <writeHost host="hostM1" url="192.168.17.135:3306" user="root" password="root">
            <!-- can have multi read hosts -->
            <readHost host="hostS2" url="192.168.17.134:3306" user="root" password="root" />
        </writeHost>
    </dataHost>
     
</mycat:schema>
參數說明:
        balance 屬性(負載均衡類型)
        balance="0", 不開啓讀寫分離機制,所以讀操作都發送到當前可用的writeHost上。
        balance="1",全部的readHost與stand by writeHost 參與select語句的負載均衡,簡單的說,當雙主雙從模式(M1->S1,M2->S2,並且M1和M2互爲主備),正常情況下,M2,S1,S2 都參 select語句的負載均衡。
        balance="2",所有讀操作都隨機的在 writeHost、 readhost 上分發。
        balance="3",所有讀請求隨機分發到 wiriterHost 對應的 readhost 執行,writerHost不負擔讀壓力。
    
        其他參數詳情參考官方文檔6.6.1章節

3. 運行

        Windows:直接運行startup_nowrap.bat(有報錯可以查看log目錄下的日誌)

4. 測試驗證

        使用navicat連接mycat,端口爲8066,用戶名密碼爲server.xml所配置的。
        執行寫操作:insert into test values('jerome2',2);(可在主庫的mysql log看到插入一條數據,從庫日誌可看到同步了這條數據)
        執行讀操作:SELECT * FROM test; (可在從庫看到查詢日誌,主庫沒有日誌)
    


發佈了201 篇原創文章 · 獲贊 96 · 訪問量 77萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章