一、什麼是讀寫分離
Mysql實現主從複製後,同時也需要實現讀寫分離,讀寫分離的處理就是主庫處理事務性增、刪、改操作,而從庫僅用於數據查詢讀取。實現讀寫分離需要藉助其他中間件,下面就介紹Mycat中間件實現讀寫分離
二、Mycat的安裝
1、安裝java環境包
yum install java-1.8.0-openjdk.x86_64
2、下載mycat
wget http://dl.mycat.org.cn/1.6.7.6/20211221142218/Mycat-server-1.6.7.6-release-20211221142218-linux.tar.gz
3、解壓mycat包
tar -zxvf Mycat-server-1.6.7.6-release-20211221142218-linux.tar.gz
4、mycat安裝授權處理
//剪切到/usr/local下 mv mycat /usr/local/ //創建專門運行mycat賬號 adduser mycat // 切換到mycat文件夾路徑下 cd /usr/local //將文件權限賦給mycat賬號 chown mycat:mycat -R mycat
5、進入profile配置環境變量並添加
//進入文件 vim /etc/profile //配置環境變量 export JAVA_HOME=/usr export MYCAT_HOME=/usr/local/mycat //刷新環境變量文件 source /etc/profile //切換mycat用戶 su mycat //切換目錄 cd /usr/local/mycat/bin/
6、啓動mycat
//啓動mycat ./mycat start //查看狀態 ./mycat status //查看啓動輸出 /usr/local/mycat/bin/mycat console(查看mycar輸出日誌)
7、切換到mycat根目錄,查看目錄文件
//切換到mycat根目錄 cd /usr/local/mycat //查看目錄文件 ll
三、Mycat讀寫分離配置
1、進到conf文件夾裏面查看配置文件
cd conf
2、vim進入schema.xml進行編輯配置
vim /usr/local/mycat/conf/schema.xml
分片配置:Schema裏面包含table配置,指定需要的數據庫表名,配置dataNode後,randomDataNode="dn1"可要可不要
非分片配置:Schema不指定table,schema必須指定配置dataNode ,否則會提示找不到節點,配置dataNode後,randomDataNode="dn1"可要可不要
schema文件配置說明:
balance指的負載均衡類型,目前的取值有4種: 1. balance=”0”, 不開啓讀寫分離機制,所有讀操作都發送到當前可用的writeHost上。 2. balance=”1”,全部的readHost與stand bywriteHost參與select語句的負載均衡,簡單的說,當雙主雙從模式(M1->S1,M2->S2,並且M1與 M2互爲主備),正常情況下,M2,S1,S2都參與select語句的負載均衡。 3. balance=”2”,所有讀操作都隨機的在writeHost、readhost上分發。 4. balance=”3”,所有讀請求隨機的分發到wiriterHost對應的readhost執行,writerHost不負擔讀壓力 注意:balance=3只在1.4及其以後版本有,1.3沒有。 ———————————————— writeType屬性: 1.writeType=”0”,所有寫操作發送到配置的第一個writeHost,第一個掛了切到還生存的第二個writeHost,重新啓動後以切換後的爲準,切換記錄在配置文件中:dnindex.properties. 2.writeType=”1”,所有寫操作都隨機地發送到配置的writeHost,1.5以後廢棄不推薦。 ———————————————— switchType指的是切換的模式,目前的取值也有4種: 1. switchType=’-1’ 表示不自動切換 2. switchType=’1’ 默認值,表示自動切換 3. switchType=’2’ 基於MySQL主從同步的狀態決定是否切換,心跳語句爲 show slave status 4. switchType=’3’基於MySQLgalary cluster的切換機制(適合集羣)(1.4.1),心跳語句爲 show status like ‘wsrep%’。 ————————————————
3、配置server.xml
vim /usr/local/mycat/conf/server.xml
4、配置完成,重啓mycat服務
//切換路徑 cd /usr/local/mycat/bin //重啓 ./mycat restart
5、進入mycat數據庫
mysql -uroot -h ip -P3310 -p --default_auth=mysql_native_password
6、切換數據庫
//進入邏輯庫 use SLAVEDEMO; //查看邏輯庫table show tables; //切換至mycat日誌目錄 cd /usr/local/mycat/logs/ //實時查看mycat日誌 tail -f mycat.log
7、使用navicat鏈接mycat邏輯庫
8、mycat數據庫測試
到此爲止,mycat配置mysql讀寫分離完成。
配置完成後,我們項目裏面的鏈接是直接使用mycat鏈接,不論是建表還是操作都可以使用mycat鏈接,執行順序爲mycat邏輯數據庫->同步到主庫->同步到從庫。也可以直接在主庫建表,都會同步到mycat邏輯庫裏面。
參考文獻:https://blog.csdn.net/qq_35992900/article/details/80673889