用中間鍵mycat搭建數(shù)據(jù)庫(kù)讀寫分離


一、配置mysql主從服務(wù)器

主數(shù)據(jù)庫(kù):10.170.1.16

從數(shù)據(jù)庫(kù):10.170.1.18

(1)主數(shù)據(jù)庫(kù)服務(wù)器配置

打開數(shù)據(jù)庫(kù)安裝目錄下的my.cnf并添加上:

server-id ?????????=16

read-only ?????????=0

binlog-do-db ??????=cispweb ??#同步的數(shù)據(jù)庫(kù)

binlog-ignore-db ??=mysql #不需要同步的數(shù)據(jù)庫(kù)


重啟數(shù)據(jù)庫(kù),并進(jìn)入到數(shù)據(jù)庫(kù)蚀之,如果出現(xiàn)下圖內(nèi)容則配置成功



為從數(shù)據(jù)分配權(quán)限賬號(hào):

?grant replication slave,file on *.* to 'xml'@10.170.1.18' identified

?by '123456';


(2)從數(shù)據(jù)庫(kù)服務(wù)器配置

打開數(shù)據(jù)庫(kù)安裝目錄下的my.cnf并添加上:

server-id ??????= 2

master-host ????=10.170.1.16

master-user ????=xml

master-pass ????=123456

master-port ????=3306

master-connect-retry=60

replicate-do-db =cispweb

replicate-ignore-db=mysql


注:第一次添加到配置后會(huì)記錄到服務(wù)器上蝗敢,如果需要修改盡量用命令來修改


mysql> stop slave;

Query OK, 0 rows affected (0.00 sec)

mysql> change master to

??? -> master_host='192.168.0.232',

??? -> master_user='repl2',

??? -> master_password='123456',

??? -> master_log_file='mysql-bin.000004',

??? -> master_log_pos=595;

Query OK, 0 rows affected (0.01 sec)

mysql> start slave;

Query OK, 0 rows affected (0.00 sec)


重啟數(shù)據(jù)庫(kù),并進(jìn)入到數(shù)據(jù)庫(kù),如果出現(xiàn)下圖內(nèi)容則配置成功

注:如果紅框內(nèi)值為NO足删,優(yōu)先檢查賬號(hào)的權(quán)限分配




(3)mycat配置

如果上述配置完成寿谴,此刻數(shù)據(jù)庫(kù)已經(jīng)建立了主從關(guān)系,那么主從數(shù)據(jù)庫(kù)已經(jīng)完成了同步失受,可以通過進(jìn)行插入數(shù)據(jù)進(jìn)行檢測(cè)讶泰。

tar?-zxvf?Mycat-server-1.4-release-20151019230038-linux.tar.gz

mv mycat /usr/local/

將mycat包解壓并移到/usr/local/mycat路徑下



roupadd mycat

adduser -r -g mycat mycat

chown -R mycat.mycat /usr/local/mycat

創(chuàng)建mycat 用戶,改變目錄權(quán)限為mycat


進(jìn)入到/usr/local/mycat/conf 并打開schema.xml


<?xml version="1.0"?>

<!DOCTYPE mycat:schema SYSTEM "schema.dtd">

<mycat:schema xmlns:mycat="http://io.mycat/">

<!--?定義MyCat的邏輯庫(kù)?-->

<schema ?name="cispweb" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>

<!--?定義MyCat的數(shù)據(jù)節(jié)點(diǎn)?-->

<dataNode name="dn1" dataHost="localhost1" database="cispweb" />

<!--?定義數(shù)據(jù)主機(jī)dtHost拂到,連接到MySQL讀寫分離集群?,schema中的每一個(gè)dataHost中的host屬性值必須唯一-->??

????<!--?dataHost實(shí)際上配置就是后臺(tái)的數(shù)據(jù)庫(kù)集群痪署,一個(gè)datahost代表一個(gè)數(shù)據(jù)庫(kù)集群?-->??

????<!--?balance="1",全部的readHost與stand?by?writeHost參與select語句的負(fù)載均衡-->??

????<!--?writeType="0"兄旬,所有寫操作發(fā)送到配置的第一個(gè)writeHost狼犯,這里就是我們的hostmaster,第一個(gè)掛了切到還生存的第二個(gè)writeHost-->?


<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"

??writeType="0" dbType="mysql" dbDriver="native" switchType="1" ?slaveThreshold="100">

<heartbeat>select user()</heartbeat>

<!-- can have multi write hosts -->

<writeHost host="hostM1" url="localhost:3306" user="root" password="XXXX">

<!-- can have multi read hosts -->

<readHost host="hostS1" url="10.170.1.18:3306" user="root" password="XXX" />

</writeHost>

</dataHost>

</mycat:schema>


接下來配置用戶權(quán)限,系統(tǒng)變量

(/usr/local/mycat/conf/server.xml):

<user name="root">

<property name="password">XXX</property>

<property name="schemas">XXX</property>

</user>

<!--不需要配置-->

<user name="user">

<property name="password">user</property>

<property name="schemas">TESTDB</property>

<property name="readOnly">true</property>

</user>


修改防火墻,允許mycat的端口被外界訪問:

vi?/etc/sysconfig/iptables??

添加:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8066 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 9066 -j ACCEPT


重啟防火墻

service?iptables?restart

啟動(dòng)mycat

./mycat?start?

登錄mycat

mysql -uroot -h10.170.1.16 -P8066 -p



配置說明:

name屬性唯一標(biāo)識(shí)dataHost標(biāo)簽领铐,供上層的標(biāo)簽使用悯森。

maxCon屬性指定每個(gè)讀寫實(shí)例連接池的最大連接。也就是說罐孝,標(biāo)簽內(nèi)嵌套的

writeHost呐馆、readHost標(biāo)簽都會(huì)使用這個(gè)屬性的值來實(shí)例化出連接池的最大連接數(shù)。

minCon屬性指定每個(gè)讀寫實(shí)例連接池的最小連接莲兢,初始化連接池的大小汹来。


balance屬性負(fù)載均衡類型,目前的取值有3種:

1.balance="0",不開啟讀寫分離機(jī)制改艇,所有讀操作都發(fā)送到當(dāng)前可用的writeHost上收班。

2.balance="1",全部的readHost與stand by writeHost參與select語句的負(fù)載均衡谒兄,簡(jiǎn)單的說摔桦,當(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沒有。


writeType屬性負(fù)載均衡類型沟娱,目前的取值有3種:

1.writeType="0", 所有寫操作發(fā)送到配置的第一個(gè)writeHost氛驮,第一個(gè)掛了切到還生存的第二個(gè)writeHost,重新啟動(dòng)后已切換后的為準(zhǔn)济似,切換記錄在配置文件中:dnindex.properties.

2.writeType="1"柳爽,所有寫操作都隨機(jī)的發(fā)送到配置的writeHost,1.5以后廢棄不推薦碱屁。

3.writeType="2"磷脯,不執(zhí)行寫操作


switchType屬性

-1 表示不自動(dòng)切換

1 默認(rèn)值,自動(dòng)切換

2 基于mysql主從同步的狀態(tài)決定是否切換

3 基于MySQLgalarycluster的切換機(jī)制(適合集群)(1.4.1)

心跳語句為show status like‘wsrep%’

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末娩脾,一起剝皮案震驚了整個(gè)濱河市赵誓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌柿赊,老刑警劉巖俩功,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異碰声,居然都是意外死亡诡蜓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門胰挑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蔓罚,“玉大人椿肩,你說我怎么就攤上這事〔蛱福” “怎么了郑象?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)茬末。 經(jīng)常有香客問我肺素,道長(zhǎng)寺渗,這世上最難降的妖魔是什么厌丑? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任拍谐,我火速辦了婚禮,結(jié)果婚禮上责掏,老公的妹妹穿的比我還像新娘柜砾。我一直安慰自己,他們只是感情好拷橘,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布局义。 她就那樣靜靜地躺著,像睡著了一般冗疮。 火紅的嫁衣襯著肌膚如雪萄唇。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天术幔,我揣著相機(jī)與錄音另萤,去河邊找鬼。 笑死诅挑,一個(gè)胖子當(dāng)著我的面吹牛四敞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拔妥,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼忿危,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了没龙?” 一聲冷哼從身側(cè)響起铺厨,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎硬纤,沒想到半個(gè)月后解滓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡筝家,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年洼裤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片溪王。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡腮鞍,死狀恐怖值骇,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情缕减,我是刑警寧澤雷客,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布芒珠,位于F島的核電站桥狡,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏皱卓。R本人自食惡果不足惜裹芝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望娜汁。 院中可真熱鬧嫂易,春花似錦、人聲如沸掐禁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽傅事。三九已至缕允,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蹭越,已是汗流浹背障本。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留响鹃,地道東北人驾霜。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像买置,于是被迫代替她去往敵國(guó)和親粪糙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容