MySQL讀寫分離

架構(gòu)圖

數(shù)據(jù)庫同步

Master節(jié)點

開啟Binary log

master節(jié)點修改my.ini配置文件

server-id=1
log-bin=master-bin
log-bin-index=master-bin.index

重啟MySQL服務(wù)

SHOW MASTER STATUS

創(chuàng)建用戶

//1,在主庫創(chuàng)建賬號,用于從庫的連接
//2,賦予新建的賬戶從庫權(quán)限(不同版本設(shè)置方式不同,此處為mysql8)
 mysql> CREATE USER qiao IDENTIFIED BY '123456';
 mysql>  grant replication slave on *.* to 'qiao'@'%';
 mysql> flush privileges;

Slave節(jié)點

開啟log

slave節(jié)點修改my.ini配置文件

server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin

注:這里面的server-id 一定要和主庫的不同

重啟MySQL服務(wù)

關(guān)聯(lián)Master

change master to master_host='127.0.0.1',
master_port=3307,
master_user='qiao',
master_password='123456',
master_log_file='master-bin.000001',
master_log_pos=0;

master_host:主庫的ip
master_port:主庫的端口,
master_user:連接主庫的賬號’,
master_password:賬號的密碼,
master_log_file:log文件名,
master_log_pos=0;//寫0會賦予默認值

開啟同步

mysql> start slave ;//啟動同步

其他命令:

mysql> show slave status\G //查看啟動狀態(tài),注意不要加分號
mysql> stop slave ; //停止同步

Mycat部署

安裝

1、jdk安裝(略)
2、mycat安裝(官網(wǎng)http://www.mycat.org.cn/

配置

schema.xml

主配置文件(讀寫分離、高可用、分表、節(jié)點控制)

#定義mycat工作庫mycat_testdb是mycat的一個邏輯庫,可以自定義,但是涉及另外一個server.xml配置文件。mycat_testdb邏輯庫對應dn1這個數(shù)據(jù)節(jié)點
<schema name="mycat_testdb" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
</schema>
 
# 定義名為dn1這個數(shù)據(jù)節(jié)點的邏輯主機地址。和真實的后端數(shù)據(jù)庫中的school庫名。
    <dataNode name="dn1" dataHost="host1" database="school" />
 
 
# host1這個邏輯主機的最大并發(fā)連接數(shù)。最小連接(類似預熱數(shù)據(jù),提前連接好,節(jié)省臨時連接的消耗)。
   
  balance默認為1,為負載均衡到所有從庫讀操作。
     負載均衡類型,目前的取值有4 種:
     (1)balance="0", 不開啟讀寫分離機制,所有讀操作都發(fā)送到當前可用的 writeHost 上。
     (2)balance="1",全部的 readHost 與 stand by writeHost 參與 select 語句的負載均衡。
         簡單的說,當雙主雙從模式(M1->S1,M2->S2,并且 M1 與 M2 互為主備),正常情況下,M2,S1,S2 都參與 select 語句的負載均衡。
     (3)balance="2",所有讀操作都隨機的在 writeHost、readhost 上分發(fā)。
     (4)balance="3",所有讀請求隨機的分發(fā)到 readhost 執(zhí)行,writerHost 不負擔讀壓力
 
  writeType默認為0,寫操作只分配到第一個writeHost數(shù)據(jù)庫實例組。指定后端數(shù)據(jù)庫軟件類型。
 
  dbDriver是驅(qū)動。
 
  switchType="1"是主庫宕機,自動切換到其他預備主數(shù)據(jù)庫實例組
 
  dbDriver(使用native的話,因為這個值執(zhí)行的是二進制的mysql協(xié)議,所以可以使用mysql和maridb,其他類型的則需要使用JDBC驅(qū)動來支持。)
    <dataHost name="host1" maxCon="1000" minCon="10" balance="2" writeType="0" dbType="mysql" dbDriver="native" switchType="1">
 
 
# mycat監(jiān)控后端mysql是否可用,走的心跳信息
     <heartbeat>select user()</heartbeat>
 
 
# 定義host1邏輯主機中的真實物理主機,這是邏輯主機中的一個真實“可寫”節(jié)點,真實的數(shù)據(jù)庫密碼,不能瞎寫
    <writeHost host="hostM1" url="192.168.1.128:3306" user="root" password="abc123">
 
# 定義host1邏輯主機中的真實物理主機,這是邏輯主機中的一個真實“可讀”節(jié)點,真實的數(shù)據(jù)庫密碼,不能瞎寫
    <readHost host="hostS1" url="192.168.1.130:3306" user="root" password="abc123" />

server.xml

mycat軟件本身相關(guān)的配置


啟動

echo 'export PATH=/usr/local/mycat/bin:$PATH' >> /etc/profile
source /etc/profile
mycat start

springboot 整合

配置

#配置數(shù)據(jù)源
spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver
#這里配置的是Mycat中server.xml中配置賬號密碼,不是數(shù)據(jù)庫的密碼。
spring.datasource.druid.username=root
spring.datasource.druid.password=123456
#mycat的邏輯庫 端口也是mycat的
spring.datasource.druid.url=jdbc:mysql://192.168.142.129:8066/TESTDB

使用

結(jié)合項目的ORM正常使用,過程中對mycat無感知

資料:
https://www.cnblogs.com/yuan9910/p/13807619.html
https://www.cnblogs.com/psc0218/p/13555350.html
https://blog.csdn.net/qq_38361863/article/details/109365127

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 實現(xiàn)MySQL讀寫分離的前提是我們已經(jīng)將MySQL主從復制配置完畢,可參考我上一篇關(guān)于MySQL主從復制的文章。讀...
    Jerry_Liang閱讀 24,241評論 4 34
  • 1. MySQL讀寫分離概念 MYSQL讀寫分離的原理其實就是讓Master數(shù)據(jù)庫處理事務(wù)性增加、刪除、修改、更新...
    superman超哥閱讀 624評論 0 0
  • 0.系統(tǒng)環(huán)境要求 Mysql版本:5.5版本以上 jdk:1.7 Mycat:1.6 mycat使用Java開發(fā),...
    cf326f259970閱讀 405評論 0 0
  • Mycat 實現(xiàn) MySQL 讀寫分離 目前MyCat配置Mysql 讀寫分離的文章雖然很多,但是看起來比較雜亂,...
    饒一熊閱讀 1,099評論 0 0
  • 數(shù)據(jù)庫拆分原則 1.優(yōu)先使用緩存來降低數(shù)據(jù)庫訪問壓力2.緩存無法解決問題使用數(shù)據(jù)庫讀寫分離3.讀寫分離有瓶頸使用數(shù)...
    刻骨銘心_17d7閱讀 410評論 0 6

友情鏈接更多精彩內(nèi)容