登錄mycat 命令:mysql -uroot -p123456 -h 192.168.57.98 -P8066
1. 主庫(kù)只負(fù)責(zé)讀,備庫(kù)只負(fù)責(zé)寫,一主一備
當(dāng)備庫(kù)掛掉時(shí),無(wú)法讀取數(shù)據(jù)
當(dāng)主庫(kù)掛掉時(shí),無(wú)法寫數(shù)據(jù),但是還能讀取數(shù)據(jù)
第一種情況:當(dāng)配置為 balance=3;writetype=1;switch=0或者switch=1;
當(dāng)備庫(kù)掛掉時(shí),無(wú)法讀取數(shù)據(jù)
當(dāng)主庫(kù)掛掉時(shí),無(wú)法寫數(shù)據(jù),但是還能讀取數(shù)據(jù)
第二種情況:當(dāng)配置為balance=3;writetype=1;switch=2時(shí)
主庫(kù)掛掉既不能讀也不能寫
備庫(kù)掛掉即能讀也能寫
配置的文件如下:


有兩個(gè)參數(shù)需要注意,balance和 switchType。其中,balance指的負(fù)載均衡類型,目前的取值有4種:
balance=“0”, 不開啟讀寫分離機(jī)制,所有讀操作都發(fā)送到當(dāng)前可用的writeHost上;
balance=“1”,全部的readHost與stand by writeHost參與select語(yǔ)句的負(fù)載均衡,簡(jiǎn)單的說(shuō),當(dāng)雙主雙從模式(M1->S1,M2->S2,并且M1與 M2互為主備),正常情況下,M2、S1、S2都參與select語(yǔ)句的負(fù)載均衡;如果是雙主雙從架構(gòu),正常情況下,只有第一臺(tái)主庫(kù)充當(dāng)寫操作,其余的三臺(tái)全部是從讀
balance=“2”,所有讀操作都隨機(jī)的在writeHost、readhost上分發(fā);
balance=“3”,所有讀請(qǐng)求隨機(jī)的分發(fā)到wiriterHost對(duì)應(yīng)的readhost執(zhí)行,writerHost不負(fù)擔(dān)讀壓力。
heartbeat 標(biāo)簽指明用于和后端數(shù)據(jù)庫(kù)進(jìn)行心跳檢查的語(yǔ)句。
? ? ? 可以使用兩種方式檢查:? select user() 或者show slave status
write type
writeType="0", 所有寫操作發(fā)送到配置的第一個(gè) writeHost,第一個(gè)掛了切到第二個(gè)writeHost,重新啟動(dòng)后已切換后的為準(zhǔn),切換記錄在配置文件中:dnindex.properties .
writeType="1",所有寫操作都隨機(jī)的發(fā)送到配置的 writeHost,1.5以后已經(jīng)廢棄了。
writeType="2",沒實(shí)現(xiàn)。 -1 表示不自動(dòng)切換 1 默認(rèn)值,自動(dòng)切換 2 基于MySQL 主從同步的狀態(tài)決定是否切換
switchType指的是切換的模式,目前的取值也有4種:
switchType=’-1’ 表示不自動(dòng)切換;
switchType=‘1’ 默認(rèn)值,表示自動(dòng)切換;
switchType=‘2’?基于MySQL主從同步的狀態(tài)決定是否切換,心跳語(yǔ)句為 show slave status;
switchType='3’基于MySQL galary cluster的切換機(jī)制(適合集群)(1.4.1),心跳語(yǔ)句為 show status like ‘wsrep%’。
2. 一主一備,主備都能讀寫,主庫(kù)down掉后 就以從庫(kù)為準(zhǔn)了,就算主庫(kù)恢復(fù)了,還是以從庫(kù)為準(zhǔn)
配置:當(dāng)配置為 balance=2;writetype=0;switch=1;
? ? 當(dāng)主庫(kù)和備庫(kù)都能讀寫,當(dāng)主庫(kù)和備庫(kù)隨機(jī)讀,主庫(kù)down了以從庫(kù)為準(zhǔn)進(jìn)行讀寫,當(dāng)主庫(kù)恢復(fù)后,讀還是隨機(jī)的兩臺(tái)機(jī)器,但是寫數(shù)據(jù)以從庫(kù)為準(zhǔn),無(wú)法恢復(fù)到從主庫(kù)進(jìn)行寫了

3. 雙主、互為主備
互為主備:只要把slave節(jié)點(diǎn)也按照master節(jié)點(diǎn)進(jìn)行配置,就可以實(shí)現(xiàn)雙向的主從復(fù)制。
從庫(kù)新增用戶:grant replication slave,replication client on *.* to 'slave'@'192.168.57.98' identified by 'Zdkx#2021';
從庫(kù)指定master地址:change master to master_host='192.168.56.46', master_user='slave', master_password='Zdkx#2021', master_port=3306, master_log_file='mysql-bin.000020', master_log_pos=941, master_connect_retry=30;
配置:當(dāng)配置為 balance=1;writetype=0;switch=1;
schema 配置如下:

4.多主多備,請(qǐng)修改 readhost和writehost數(shù)量
