Windows環境下使用Mycat模擬分庫分表-讀寫分離案例

一、基本環境

W7 64位、Mycat1.6、MySQL8.0

二、Mycat核心配置文件配置

解壓Mycat1.6,並對server.xml、schema.xml、rule.xml三個核心配置文件做相關配置,見下圖

1、對server.xml設置登錄的帳號密碼以及邏輯庫名(root賬戶可讀寫,user賬戶只讀);並設置sequnceHandlerType爲0

在這裏插入圖片描述

2、配置schema.xml,這裏的庫、表、數據庫連接等會在後面介紹。rule="mod-long"會在rule.xml中有相關設置

在這裏插入圖片描述

3、設置rule.xml,由於只設置了兩臺數據庫,這裏改爲2
在這裏插入圖片描述

主鍵名稱需要做下變更

在這裏插入圖片描述

三、執行創建庫和表的命令,數據庫mycat1、mycat2都需創建這兩張表

CREATE TABLE IF NOT EXISTS t_order (
order_id int(20) NOT NULL,
user_id int(11) DEFAULT NULL,
pay_mode tinyint(4) DEFAULT NULL,
amount float DEFAULT NULL,
order_date datetime DEFAULT NULL,
PRIMARY KEY (order_id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=‘訂單主表’;

CREATE TABLE IF NOT EXISTS t_order_detail (
od_id int(20) NOT NULL,
order_id int(11) DEFAULT NULL,
goods_id int(11) DEFAULT NULL,
unit_price float DEFAULT NULL,
qty int(11) DEFAULT NULL,
PRIMARY KEY (od_id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=‘訂單明細表’;

在這裏插入圖片描述

四、重啓mycat,並用mysql連接工具連接mycat

停止命令:mycat.bat stop

啓動命令:mycat.bat start

連接mycat,注意默認端口是8066

錯誤的看日誌wrapper.log

五、連接mycat後,在mycat_order數據庫下執行插入命令,並查看mycat1和mycat2中t_order表

INSERT INTO t_order(order_id, user_id, pay_mode, amount)VALUES(next value for MYCATSEQ_ORDER, ‘105’, 1, 100); 執行多次

在這裏插入圖片描述
在這裏插入圖片描述

用mysql連接工具分別用root和user賬戶連接Mycat,均可查詢出兩張表的彙總數據,且user賬戶只能查詢不能寫,如下圖

在這裏插入圖片描述

至此分庫分表和讀寫分離的的功能基本實現

但是真正應用到項目中還有許多坑需要踩。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章