日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

利用mycat实现mysql数据库读写分离

發布時間:2025/3/17 数据库 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用mycat实现mysql数据库读写分离 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、這里是在mysql主從復制實現的基礎上,利用mycat做讀寫分離,架構圖如下:

?

2、Demo

2.1 在mysql master上創建數據庫創建db1

2.2 在數據庫db1創建表student

同時,因為配置好了mysql主從復制,在mysql slave上也有一樣數據庫和表

2.3 編輯 mycat的配置文件server.xml

<!--表示mycat的登錄用戶名-->
<user name="test">
<!--表示mycat的登錄密碼--><property name="password">test</property>
         <!--表示mycat的邏輯數據庫名稱,可以自定義--><property name="schemas">TESTDB</property></user><user name="user"><property name="password">user</property><property name="schemas">TESTDB</property><property name="readOnly">true</property></user>

2.4編輯mycat的配置文件schema.xml

<!--TESTDB表示mycat的邏輯數據庫名稱
當schema節點沒有子節點table的時候,一定要有dataNode屬性存在(指向mysql真實數據庫),
-->
<
schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema><!--指定master的數據庫db1--><dataNode name="dn1" dataHost="192.168.0.4" database="db1" /><!--指定mastet的ip --><dataHost name="192.168.0.4" maxCon="1000" minCon="10" balance="3"writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<!--表示mysql的心跳狀態--><heartbeat>select user()</heartbeat><!-- master負責寫 --><writeHost host="hostM1" url="192.168.0.4:3306" user="root"password="admin"><!--slave負責讀--><readHost host="hostS2" url="192.168.0.5:3306" user="root" password="admin" /></writeHost> </dataHost>

到這里,利用mycat做讀寫分離就已經配置完了

注意?dataHost節點的下面三個屬性

? balance, switchType, writeType

balance="0", 不開啟讀寫分離機制,所有讀操作都發送到當前可用的writeHost上。

balance="1",全部的readHost與stand by writeHost參與select語句的負載均衡,簡單的說,當雙主雙從模式(M1->S1,M2->S2,并且M1與M2互為主備),正常情況下,M2,S1,S2都參與select語句的負載均衡。

balance="2",所有讀操作都隨機的在writeHost、readhost上分發。

balance="3",所有讀請求隨機的分發到writeHost下的readhost執行,writeHost不負擔讀壓力

writeType表示寫模式

writeType="0",所有的操作發送到配置的第一個writehost

writeType="1",隨機發送到配置的所有writehost

writeType="2",不執行寫操作

switchType指的是切換的模式,目前的取值也有4種:

switchType=‘-1‘ 表示不自動切換

switchType=‘1‘?默認值,表示自動切換

switchType=‘2‘?基于MySQL主從同步的狀態決定是否切換,心跳語句為show slave status

switchType=‘3‘基于MySQL galary cluster的切換機制(適合集群)(1.4.1),心跳語句為show status like ‘wsrep%‘。

轉載于:https://www.cnblogs.com/520playboy/p/6159751.html

總結

以上是生活随笔為你收集整理的利用mycat实现mysql数据库读写分离的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。