Mycat2學(xué)習(xí)3-搭建一主一從讀寫分離

我們通過 Mycat 和 MySQL 的主從復(fù)制配合搭建數(shù)據(jù)庫的讀寫分離仰美,實(shí)現(xiàn) MySQL 的 高可用性迷殿。我們將搭建:一主一從、雙主雙從兩種讀寫分離模式咖杂。

1搭建 MySQL 數(shù)據(jù)庫主從復(fù)制

  1. 原理


  1. 主機(jī)配置(atguigu01)

修改mysql的配置文件etc/my.cnf

#主服務(wù)器唯一ID 
server-id=1
#啟用二進(jìn)制日志
log-bin=mysql-bin
# 設(shè)置不要復(fù)制的數(shù)據(jù)庫(可設(shè)置多個(gè))
binlog-ignore-db=mysql binlog-ignore-db=information_schema
#設(shè)置需要復(fù)制的數(shù)據(jù)庫 binlog-do-db=需要復(fù)制的主數(shù)據(jù)庫名字
#設(shè)置logbin格式 binlog_format=STATEMENT
  1. 從機(jī)配置

還是同樣的修改my.cnf文件:

修改配置文件:vim /etc/my.cnf
#從服務(wù)器唯一ID 
server-id=2
#啟用中繼日志
   relay-log=mysql-relay
  1. 主機(jī)庆寺、從機(jī)重啟 MySQL 服務(wù)
  2. 主機(jī)從機(jī)都關(guān)閉防火墻
  3. 在主機(jī)上建立帳戶并授權(quán) slave
#在主機(jī)MySQL里執(zhí)行授權(quán)命令
CREATE USER 'slave2'@'%' IDENTIFIED BY '123123';
GRANT REPLICATION SLAVE ON *.* TO 'slave2'@'%'; #此語句必須執(zhí)行。否則見下面诉字。
ALTER USER 'slave2'@'%' IDENTIFIED WITH mysql_native_password BY '123123';
flush privileges; #查詢master的狀態(tài) show master status;
#記錄下File和Position的值 #執(zhí)行完此步驟后不要再操作主服務(wù)器MySQL止邮,防止主服務(wù)器狀態(tài)值變化
  1. 在從機(jī)上配置需要復(fù)制的主機(jī)

復(fù)制主機(jī)的命令

CHANGE MASTER TO MASTER_HOST='主機(jī)的IP地址', MASTER_USER='slave', MASTER_PASSWORD='123123',

MASTER_LOG_FILE='mysql-bin.具體數(shù)字',MASTER_LOG_POS=具體值;

下面兩個(gè)參數(shù)都是Yes,則說明主從配置成功! # Slave_IO_Running: Yes

Slave_SQL_Running: Yes

  1. 主機(jī)新建庫奏窑、新建表导披、insert 記錄,從機(jī)復(fù)制
    這個(gè)主要是測(cè)試一下埃唯,在主機(jī)上做一些數(shù)據(jù)庫的修改撩匕,從機(jī)會(huì)不會(huì)更新

  2. 如何停止從服務(wù)復(fù)制功能
    stop slave;

  3. 如何重新配置主從

stop slave;
reset master;

2 配置 Macat 讀寫分離

1.2.1 登錄Mycat,創(chuàng)建邏輯庫墨叛,配置數(shù)據(jù)源

在Mycat里創(chuàng)建數(shù)據(jù)庫mydb1 #創(chuàng)建db2邏輯庫
create database mydb1;
修改mydb1.schema.json 指定數(shù)據(jù)源 "targetName": "prototype"止毕,配置主機(jī)數(shù)據(jù)源 vim /usr/local/mycat/conf/schemas/mydb1.schema.json

在我第一個(gè)帖子里面又講,就跟登錄mysql一樣的登錄mycat不過端口號(hào)是8066漠趁,當(dāng)然也可以使用工具 扁凛,比如 navicat來登錄mycat。

1.2.2 使用注解方式添加數(shù)據(jù)源

這里我們可以在登錄之后(命令行登錄或者navicat等工具連接好)闯传,運(yùn)行下面的一些命令:

登錄Mycat谨朝,注解方式添加數(shù)據(jù)源,指向從機(jī)

/*+ mycat:createDataSource{ "name":"rwSepw", "url":"jdbc:mysql://192.168.140.100:3306/mydb1?useSSL=false&characterEncodi ng=UTF-8&useJDBCCompliantTimezoneShift=true", "user":"root", "password":"123123" } */;
/*+ mycat:createDataSource{ "name":"rwSepr", "url":"jdbc:mysql://192.168.140.99:3306/mydb1?useSSL=false&characterEncodin g=UTF-8&useJDBCCompliantTimezoneShift=true", "user":"root", "password":"123123" } */;

查詢配置數(shù)據(jù)源結(jié)果

/*+ mycat:showDataSources{} */;

更新集群信息,添加dr0從節(jié)點(diǎn).實(shí)現(xiàn)讀寫分離

/*! mycat:createCluster{"name":"prototype","masters":["rwSepw"],"replicas":["rw Sepr"]} */;

查看配置集群信息

/*+ mycat:showClusters{} */;

查看集群配置文件 conf/clusters/prototype.cluster.json


readBalanceType
查詢負(fù)載均衡策略 可選值: BALANCE_ALL(默認(rèn)值)
獲取集群中所有數(shù)據(jù)源
BALANCE_ALL_READ
獲取集群中允許讀的數(shù)據(jù)源
BALANCE_READ_WRITE 獲取集群中允許讀寫的數(shù)據(jù)源,但允許讀的數(shù)據(jù)源優(yōu)先 BALANCE_NONE
獲取集群中允許寫數(shù)據(jù)源,即主節(jié)點(diǎn)中選擇
switchType NOT_SWITCH:不進(jìn)行主從切換 SWITCH:進(jìn)行主從切換
3 重新啟動(dòng) Mycat
1.2.4驗(yàn)證讀寫分離

這里注意一點(diǎn)甥绿,我們?cè)谂渲眉何募臅r(shí)候readBalanceType配置的是all字币,也就是說讀的時(shí)候是輪訓(xùn)的遍歷所有的數(shù)據(jù)源來讀取,寫入的話在文中沒有特意的配置共缕,我們可以按需在配置的數(shù)據(jù)源文件中配置: instanceType:配置實(shí)例只讀還是讀寫
可選值: READ_WRITE,READ,WRITE

  1. 在寫主機(jī)數(shù)據(jù)庫表mytbl中插入帶系統(tǒng)變量數(shù)據(jù)洗出,造成主從數(shù)據(jù)不一致 INSERT INTO mytbl VALUES(2,@@hostname);


  2. 在Mycat里查詢mytbl表,可以看到查詢語句在主從兩個(gè)主機(jī)間切換
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市图谷,隨后出現(xiàn)的幾起案子翩活,更是在濱河造成了極大的恐慌阱洪,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件菠镇,死亡現(xiàn)場(chǎng)離奇詭異澄峰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)辟犀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門俏竞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人堂竟,你說我怎么就攤上這事魂毁。” “怎么了出嘹?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵席楚,是天一觀的道長。 經(jīng)常有香客問我税稼,道長烦秩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任郎仆,我火速辦了婚禮只祠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘扰肌。我一直安慰自己抛寝,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布曙旭。 她就那樣靜靜地躺著盗舰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪桂躏。 梳的紋絲不亂的頭發(fā)上钻趋,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音剂习,去河邊找鬼蛮位。 笑死,一個(gè)胖子當(dāng)著我的面吹牛进倍,可吹牛的內(nèi)容都是我干的土至。 我是一名探鬼主播购对,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼猾昆,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了骡苞?” 一聲冷哼從身側(cè)響起垂蜗,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤楷扬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后贴见,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烘苹,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年片部,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了镣衡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡档悠,死狀恐怖廊鸥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情辖所,我是刑警寧澤惰说,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站缘回,受9級(jí)特大地震影響吆视,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜酥宴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一啦吧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拙寡,春花似錦丰滑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至擎宝,卻和暖如春郁妈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背绍申。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來泰國打工噩咪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人极阅。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓胃碾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親筋搏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子仆百,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

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