引用的原文:https://blog.csdn.net/qq_35992900/article/details/80673889
mycat讀寫分離簡單架構圖:
這厚厚的水印老繭。。。

安裝
#安裝Java環(huán)境(mycat基于java)
yum install java-1.8.0-openjdk.x86_64
# 下載mycat
wget http://dl.mycat.io/1.6.5/Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
# 解壓
tar -zxvf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
# 剪切到/usr/local下
mv mycat /usr/local/
# 創(chuàng)建專門運行mycat賬號
adduser mycat
# 切換到mycat文件夾路徑下
cd /usr/local
# 將文件權限賦給mycat賬號
chown mycat:mycat -R mycat
#配置環(huán)境變量并添加 export JAVA_HOME=/usr export MYCAT_HOME=/usr/local/mycat(如下圖所示)
vim /etc/profile

# 刷新環(huán)境變量文件
source /etc/profile
# 切換mycat用戶
su mycat#切換目錄
cd /usr/local/mycat/bin/
#啟動
mycat./mycat start
目錄結構

配置修改
結構圖:

schema.xml讀寫分離配置:

server.xml連接配置:


連接
通過工具Navicat Premium測試是否可以連接

成功連接后配置java應用程序連接
就是將原來的IP+端口改為mycat的IP+端口

測試:
我這里是通過Navicat Premium分別連接主庫和從庫,需要斷開主從連接
訪問java應用提供的web頁面
修改我的賬號信息,例如名稱
修改操作為寫入操作,所以查看主庫會發(fā)現(xiàn)對應的表中數(shù)據(jù)發(fā)生變化,而從庫未變化
因為讀取是從從庫,所以刷新web頁面,賬戶信息會重新顯示回原來的信息,也就是從庫的信息。
ps:如果測試寫入讀取操作都是在主庫上執(zhí)行的,可以檢查一下dataHost中的balance="1" 配置是否為1,為0會出現(xiàn)此錯誤。
原因如下
1. balance=“0”, 所有讀操作都發(fā)送到當前可用的writeHost上。
2. balance=“1”,所有讀操作都隨機的發(fā)送到readHost。
3. balance=“2”,所有讀操作都隨機的在writeHost、readhost上分發(fā)
以下內容引用原文:http://m.itdecent.cn/p/c6e29d724fca
WriteType參數(shù)設置:
1. writeType=“0”, 所有寫操作都發(fā)送到可用的writeHost上。
2. writeType=“1”,所有寫操作都隨機的發(fā)送到readHost。
3. writeType=“2”,所有寫操作都隨機的在writeHost、readhost分上發(fā)。
?“readHost是從屬于writeHost的,即意味著它從那個writeHost獲取同步數(shù)據(jù),因此,當它所屬的writeHost宕機了,則它也不會再參與到讀寫分離中來,即“不工作了”,這是因為此時,它的數(shù)據(jù)已經(jīng)“不可靠”了?;谶@個考慮,目前mycat 1.3和1.4版本中,若想支持MySQL一主一從的標準配置,并且在主節(jié)點宕機的情況下,從節(jié)點還能讀取數(shù)據(jù),則需要在Mycat里配置為兩個writeHost并設置banlance=1?!?/p>
(2)設置switchType="2" 與slaveThreshold="100"
switchType 目前有三種選擇:
-1:表示不自動切換
1 :默認值,自動切換
2 :基于MySQL主從同步的狀態(tài)決定是否切換
“Mycat心跳檢查語句配置為 show slave status ,dataHost 上定義兩個新屬性: switchType="2" 與slaveThreshold="100",此時意味著開啟MySQL主從復制狀態(tài)綁定的讀寫分離與切換機制。Mycat心跳機制通過檢測 show slave status 中的 "Seconds_Behind_Master", "Slave_IO_Running", "Slave_SQL_Running" 三個字段來確定當前主從同步的狀態(tài)以及Seconds_Behind_Master主從復制時延?!?/p>
本文引用的原文鏈接:
http://m.itdecent.cn/p/c6e29d724fca
https://blog.csdn.net/qq_35992900/article/details/80673889