一产艾、下載mycat
mycat的官網(wǎng)網(wǎng)址http://www.mycat.org.cn/,我使用的是mycat的1.4的Linux安裝包
下載地址
https://github.com/MyCATApache/Mycat-download/blob/master/1.4-RELEASE/Mycat-server-1.4-release-20151019230038-linux.tar.gz
下載mycat的安裝包到/opt目錄下
#cd?/opt
#wgethttps://github.com/MyCATApache/Mycat-download/blob/master/1.4-RELEASE/Mycat-server-1.4-release-20151019230038-linux.tar.gz
#?tar?-xvf??Mycat-server-1.4-RELEASE-20151017210032-linux.tar.gz
解壓后放到/usr/local下
#mv?mycat?/usr/local
#?pwd
/usr/local/mycat
#?ls
bin??catlet??conf??lib??logs??version.txt
二、配置環(huán)境變量
檢查是否已經(jīng)配置好了java的環(huán)境變量
#java?-version
顯示
java?version?"1.8.0_45"
Java(TM)?SE?Runtime?Environment?(build?1.8.0_45-b14)
Java?HotSpot(TM)?64-Bit?Server?VM?(build?25.45-b02,?mixed?mode)
表示我的java環(huán)境變量配置好了.,如果你還沒用配置好,需先配置.如果你不會(huì)請(qǐng)自己度娘.非常多我就不寫了
三滑绒、修改mycat配置文件
接下來修改mycat的配置文件
#cd?/usr/local/mycat/conf
#ls
autopartition-long.txt???????partition-hash-int.txt????sequence_db_conf.properties
cacheservice.properties??????partition-range-mod.txt???sequence_time_conf.properties
dnindex.properties???????????router.xml????????????????server.xml
ehcache.xml??????????????????rule.xml??????????????????wrapper.conf
index_to_charset.properties??schema.xml
log4j.xml????????????????????sequence_conf.properties
配置文件非常多,配置項(xiàng)也遠(yuǎn)比amoeba復(fù)雜.如果只是簡單配置在不同的服務(wù)器上進(jìn)行讀寫分離只需要配置兩個(gè)文件
server.xml和schema.xml
(一)先配置server.xml
找到這一段
test
TESTDB
user
TESTDB
true
這里配置了兩個(gè)可以來連接的用戶
用戶1??test密碼test給予了此用戶TESTDB數(shù)據(jù)庫的權(quán)限
用戶2??user密碼user給予了此用戶TESTDB數(shù)據(jù)庫的只讀權(quán)限
注意這里的testdb不一定是你數(shù)據(jù)庫上的真實(shí)庫名.可以任意指定.只要和接下來的schema.xml的配置文件中的庫名統(tǒng)一即可
(二)接下來配置schema.xml
with?any?table?whose?sharding?node?is?in?the?same?data?node?-->
rule="mod-long"?/>
rule="mod-long"?/>?-->
rule="sharding-by-intfile"?/>
rule="sharding-by-intfile">
parentKey="id">
parentKey="id"?/>
parentKey="id"?/>
/>?-->
/>?-->
?-->
writeType="0"?dbType="mysql"?dbDriver="native"?switchType="1"??slaveThreshold="100">
select?user()
password="123456">
password="123456"?/>
看著這一大篇你是否和我一樣的開始蛋疼.好復(fù)雜有木有!
算了給大家來一份我的簡單點(diǎn)的.因?yàn)槲覀儸F(xiàn)在只做庫的讀寫分離,沒用分庫?沒用分表這些東西.
select?user()
(三)配置文件解釋
一,??
這里TESTDB就是我們對(duì)外聲稱的我們有數(shù)據(jù)庫的名稱必須和server.xml中的用戶指定的數(shù)據(jù)庫名稱一致
添加一個(gè)dataNode="dn1"是指定了我們這個(gè)庫只在dn1上.沒有進(jìn)行分庫
二,?
這里只需要改database的名字db1就是你真實(shí)數(shù)據(jù)庫服務(wù)上的數(shù)據(jù)庫名.
根據(jù)你自己的數(shù)據(jù)庫名進(jìn)行修改.
三,
這里只需要配置三個(gè)地方balance="1"與writeType="0",switchType=”1”
a.balance屬性負(fù)載均衡類型闷堡,目前的取值有4種:
1.?balance="0",不開啟讀寫分離機(jī)制,所有讀操作都發(fā)送到當(dāng)前可用的writeHost上疑故。
2.?balance="1"杠览,全部的readHost與stand?by?writeHost參與select語句的負(fù)載均衡,簡單的說纵势,當(dāng)雙主雙從模式(M1?->S1倦零,M2->S2误续,并且M1與M2互為主備)吨悍,正常情況下扫茅,M2,S1,S2都參與select語句的負(fù)載均衡。
3.?balance="2"育瓜,所有讀操作都隨機(jī)的在writeHost葫隙、readhost上分發(fā)。
4.?balance="3"躏仇,?所有讀請(qǐng)求隨機(jī)的分發(fā)到wiriterHost對(duì)應(yīng)的readhost執(zhí)行,writerHost不負(fù)擔(dān)讀壓力恋脚,注意balance=3只在1.4及其以后版本有,1.3沒有焰手。
b.writeType屬性
負(fù)載均衡類型糟描,目前的取值有3種:
1.?writeType="0",所有寫操作發(fā)送到配置的第一個(gè)writeHost,第一個(gè)掛了切到還生存的第二個(gè)
writeHost书妻,重新啟動(dòng)后已切換后的為準(zhǔn)船响,切換記錄在配置文件中:dnindex.properties?.
2.?writeType="1",所有寫操作都隨機(jī)的發(fā)送到配置的writeHost躲履。
3.?writeType="2"见间,沒實(shí)現(xiàn)。
c.switchType屬性
-?-1表示不自動(dòng)切換
-?1默認(rèn)值工猜,自動(dòng)切換
-?2基于MySQL主從同步的狀態(tài)決定是否切換
四,
這里是配置的我們的兩臺(tái)讀寫服務(wù)器IP地址訪問端口和?訪問用戶的用戶名和密碼
四米诉、啟動(dòng)mycat