布式數據庫中間件MyCAT+Mysql

Windows配置mycat

MyCat使用Mysql的通信協議模擬成一個MySQl服務器,並創建了完整的Schema(數據庫)Table(數據表)User(用戶)的邏輯模型,並將這套邏輯模型映射到後端的存儲節點DataNode上的真實的物理庫中,這樣一來全部能使用MySQL的客戶端及編程語言都能將Mycat當成MYSQLServer使用,沒必要開發新的客戶端。html

Mycat的原理:當Mycat收到一個客戶端發送的SQL請求,會先對SQL進行語法分析和檢查,分析的結果用SQL路由,SQL路由策略支持傳統的基於表格的分片字段進行分片,也支持獨有的基於數據庫E-R關係的分別片策略,對於路由到多個數據節點(DataNode)的SQL,則會對收到的數據集進行」歸併「,而後輸出到客戶端。mysql

DataNode是MyCat的邏輯數據節點,映射到後端的某一個物理數據庫的一個Datebase,爲了作到系統高可用,每一個DataNode能夠配置多個引用地址(DataSource),當主DataSource被檢測爲不可用時,系統會自動切換到下一個可用的DataSource上,這裏的DataSoure便可認爲是Mysql的主流服務器的地址。git

1、下載mycat安裝包github

https://github.com/MyCATApache/Mycat-download/tree/master/1.6-RELEASEsql

2、 配置環境變量(Mycat安裝包解壓在任何路勁便可,可是要避免中文路徑,由於咱們要配置環境變量數據庫

3、修改配置文件(須要修改的配置文件都在conf文件夾中)編程

  (1)修改wrapper.conf 後端

   配置jdk服務器

       (2)修改server.xml(定義用戶以及系統相關變量,如端口等,是mycat服務器參數調整和用戶受權的配置文件)app

    配置mycat登陸的用戶名和密碼

(3)修改schema.xml (定義邏輯庫,表、分片節點等內容)

    配置的同一個mysql的一個全局表T_RANK,一個分庫表T_USER_LABEL,分庫規則是sharding-by-murmur(在rule.xml中定義)

    配置的不一樣mysql的一個分庫表T_USER_LABEL_TEST,分庫規則是sharding-by-murmur(在rule.xml中定義)

    配置了4個數據庫user0,user1,user3,user4,2個dataHost127.0.0.1,192.168.18.223

(4)修改rule.xml

  在上面schema.xml文件中定義了一個分庫表T_USER_LABEL,T_USER_LABEL_TEST,分庫規則是sharding-by-murmur,因此要修改對應分庫字段, 同時上面定義了2個分庫,因此也要修改規則對於的方法

注:簡單介紹一下Mycat分庫規則

  MYCAT經常使用的分片規則以下,另外還有一些其餘分片方式這裏不所有列舉:

    (1)分片枚舉:        sharding-by-intfile

    (2)主鍵範圍約定:    auto-sharding-long    此分片適用於,提早規劃好分片字段某個範圍屬於哪一個分片

    (3)一致性hash:    sharding-by-murmur

    (4)字符串hash解析:  sharding-by-stringhash

    (5)按日期(天)分片:sharding-by-date

    (6)按單月小時拆分:   sharding-by-hour

    (7)天然月分片:         sharding-by-month

    (8)取模:      mod-long  此規則爲對分片字段求摸運算

    (9)取模範圍約束:      sharding-by-pattern 此種規則是取模運算與範圍約束的結合,主要爲了後續數據遷移作準備,便可以自主決定取模後數據的節點分佈

四、啓動mycat

  (1)在原數據庫中新建4個數據庫user0,user1,user3,user4

  (2)啓動和中止服務

    進入cmd.切換到./mycat/bin/

    注:安裝mycat服務 :mycat install  啓動mycat服務 :mycat start   中止mycat服務 :mycat stop

    注意:當修改配置文件後,須要重啓mycat服務

        (3)鏈接mycat mysql -h[IP] - u[userName] -p[password] -P8066   

       (4) Navicat   for mysql 鏈接mycat

        a、填寫鏈接信息

       b、查看mycat結構

       c、mysql127.0.0一、192.168.18.223結構

       (5) 建立表而且添加數據、看同步數據源表數據的分配,select查數據的條數

相關文章
相關標籤/搜索