mysql之20分鐘用mycat搞定mysql讀寫(xiě)分離
HelloTeacher陳
8小時(shí)前
1. mycat實(shí)現(xiàn)mysql的讀寫(xiě)分離
1.1. mycat簡(jiǎn)介
mycat是最近很火的一款國(guó)人發(fā)明的分布式數(shù)據(jù)庫(kù)中間件,它是基于阿里的cobar的基礎(chǔ)上進(jìn)行開(kāi)發(fā)的mycat在應(yīng)用當(dāng)中的作用可以看下圖
mycat可以讓程序員只需要關(guān)心業(yè)務(wù)代碼的編寫(xiě),而不用擔(dān)心后端數(shù)據(jù)庫(kù)集群的負(fù)載均衡,讀寫(xiě)分離,分庫(kù)分表的數(shù)據(jù)分片邏輯的編寫(xiě),只要直接連接mycat就可以了
1.2. 安裝mycat
首先我們準(zhǔn)備一臺(tái)干凈的centos機(jī)器,安裝好jdk
解壓mycat的安裝包到/usr/local/下
設(shè)置mycat的環(huán)境變量
1. vi /etc/profile
export MYCAT_HOME=/usr/local/mycat export PATH=$MYCAT_HOME/bin:$PATH
使配置文件立即生效
1. source /etc/profile
1.3. 配置mycat
進(jìn)入mycat的配置文件目錄
1. cd /usr/local/mycat/conf/
1. vi schema.xml
這個(gè)配置文件項(xiàng)目比較多,可以參考mycat官網(wǎng)具體查看。
<!-- 定義MyCat的邏輯庫(kù) -->
<!-- 使用MyCat托管MySQL主從切換 -->
<!-- 定義數(shù)據(jù)主機(jī)dtHost2集群,連接到MySQL讀寫(xiě)分離集群,并配置了讀寫(xiě)分離和主從切換 -->
接下來(lái)配置用戶權(quán)限,系統(tǒng)變量
vi server.xml
用戶qy73user,對(duì)應(yīng)的MyCat邏輯庫(kù)連接到的數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的主機(jī)為主從復(fù)制集群,并通過(guò)MyCat實(shí)現(xiàn)了讀寫(xiě)分離
1.4. 啟動(dòng)mycat
運(yùn)行啟動(dòng)命令
mycat start
第一次啟動(dòng)會(huì)遇見(jiàn)下面的問(wèn)題。
問(wèn)題一:
解決方法:
這個(gè)是由于/etc/hosts中沒(méi)有配置主機(jī)名server005 和ip 192.168.153.164的映射
問(wèn)題二:
解決方法:
此問(wèn)題是mycat配置文件server.xml中的默認(rèn)配置沒(méi)有刪除導(dǎo)致。
再次運(yùn)行啟動(dòng)命令:mycat start
1.5. 測(cè)試mycat
1) 可以使用mysql客戶端連接或者navicat來(lái)連接mycat
2) 在mysql主機(jī)上的qy73庫(kù)中創(chuàng)建表tbl_role
3) 可以使用已經(jīng)在navicat中創(chuàng)建的mycat連接查看是否存在tbl_role表
1.6. 測(cè)試mysql讀寫(xiě)分離
1) 進(jìn)入mycat的日志目錄注意修改log4j的配置文件info為debug
2) 進(jìn)入到logs目錄,開(kāi)始實(shí)時(shí)監(jiān)控mycat.log
cd /usr/local/mycat/logs/
3) 先測(cè)試一下讀操作
我們連接到mycat發(fā)送一句select * from tbl_user命令試試
可以看到select 操作被路由到了192.168.153.161也就是我們的slave節(jié)點(diǎn)
那么我們執(zhí)行多次看看
結(jié)果還是被路由到了讀節(jié)點(diǎn)
4) 接下來(lái)我們測(cè)試一下寫(xiě)操作
可見(jiàn)插入被路由到了master節(jié)點(diǎn)
最后我們看看master的數(shù)據(jù)是否被同步到slave
記錄成功的同步過(guò)來(lái)了,可見(jiàn)讀寫(xiě)分離搭建成功。
感興趣的朋友可以點(diǎn)擊頭像關(guān)注我,每天都有更新,大家一起進(jìn)步!