官網:http://www.mycat.org.cn/
一.jdk環境的安裝
1.安裝jdk1.7,這是mycat推薦的jdk環境
2.之前是用yum安裝的jdk1.6,首先查找下
#yum info installed | grep java*
3.刪除jdk1.6
#yum remove java-1.6.0-openjdk
4.安裝jdk1.7
#yum install java-1.6.0-openjdk
二.mysql主從配置
略
三.安裝mycat
1.下載
#wget https://github.com/MyCATApache/Mycat-download/raw/master/1.4-RELEASE/Mycat-server-1.4-release-20151019230038-linux.tar.gz
2.解壓
#tar zxvf Mycat-server-1.4-release-20151019230038-linux.tar.gz #mv mycat /usr/local/mycat
四.配置mycat
1.進入conf目錄
2.修改schemma.xml
<?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://org.opencloudb/"> <schema name="dbTest" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema> <dataNode name="dn1" dataHost="localhost1" database="dbTest" /> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="-1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="hostM1" url="192.168.1.6:3306" user="test" password="test"> <readHost host="hostS1" url="localhost:3306" user="test" password="test" /> </writeHost> <writeHost host="hostS1" url="localhost:3306" user="test" password="test"> </writeHost> </dataHost> </mycat:schema>
重要項解釋:
A.<schema name="dbTest" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>
指定了mycat對外提供的數據庫以及由哪個數據節點來提供服務
B.<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="-1" slaveThreshold="100">
a.balance 屬性負載均衡類型,目前的取值有 4 種:
(1). balance="0", 不開啟讀寫分離機制,所有讀操作都發送到當前可用的 writeHost 上。
(2). balance="1",全部的 readHost 與 stand by writeHost 參與 select 語句的負載均衡,簡單的說,當雙主雙從模式(M1 ->S1 , M2->S2,並且 M1 與 M2 互為主備),正常情況下, M2,S1,S2 都參與 select 語句的負載均衡。
(3). balance="2",所有讀操作都隨機的在 writeHost、 readhost 上分發。
(4). balance="3", 所有讀請求隨機的分發到 wiriterHost 對應的 readhost 執行,writerHost 不負擔讀壓力,注意 balance=3 只在 1.4 及其以后版本有, 1.3 沒有。
B. writeType 屬性
負載均衡類型,目前的取值有 3 種:
(1). writeType="0", 所有寫操作發送到配置的第一個 writeHost,第一個掛了切到還生存的第二個
writeHost,重新啟動后已切換后的為准,切換記錄在配置文件中:dnindex.properties .
(2). writeType="1",所有寫操作都隨機的發送到配置的 writeHost。
(3). writeType="2",沒實現。
c. switchType 屬性,主mysql掛了,從mysql是否提升為主
-1 表示不自動切換
1 默認值,自動切換
2 基於MySQL 主從同步的狀態決定是否切換
*注意,必須配置為兩個writeHost節點,一個writeHost節點會出現,主mysql掛了,從mysql(readHost)也掛了.
