Mycat入門教程

2022-04-03 14:56:32 字數 2464 閱讀 9697

必備條件(自行安裝,如果不會裝請先打好基礎在來學習):

jdk:建議是1.7及其以上。 mysql:必須是5.5及其以上。

兩張表users和item,三個資料庫db01,db02,db03(三個庫在乙個資料庫例項上) users只在db01中儲存。 item表被分割到db02和db03中儲存。

create database db01;

create table users (

id int not null auto_increment,

name varchar(50) not null default '',

indate datetime not null default '0000-00-00 00:00:00',

primary key (id)

)auto_increment= 1 engine=innodb default charset=utf8;

在db02和db03中分別建立item表,sql指令碼如下

create database db02;

create table item (

id int not null auto_increment,

value int not null default 0,

indate datetime not null default '0000-00-00 00:00:00',

primary key (id)

)auto_increment= 1 engine=innodb default charset=utf8;

create database db03;

create table item (

id int not null auto_increment,

value int not null default 0,

indate datetime not null default '0000-00-00 00:00:00',

primary key (id)

)auto_increment= 1 engine=innodb default charset=utf8;

先打mycat官方**上**安裝包,**為mycat **圖如下所示:

然後在conf目錄下編輯service.xml,rule.xml,schema.xml三個檔案。 service.xml主要配置mycat服務的引數,比如埠號,myact使用者名稱和密碼使用的邏輯資料庫等 role.xml主要配置路由策略,主要有分片的片鍵,拆分的策略(取模還是按區間劃分等) schema.xml檔案主要配置資料庫的資訊,例如邏輯資料庫名稱,物理上真實的資料來源以及表和資料來源之間的對應關係和路由策略等。

配置如下所示:

server.xml

druidparser

1 8066

9066

test

testdb

user

testdb

true

role.xml

該路由表表明採用mod2的方式進行路由。通過下面可知是對item表的id鍵進行取模分表的,取模分到db02和db03,而users表直接路由到db01中。

idmod-long

2schema.xml 資料庫的url,usename,password按實際情況填寫。

select user()

在命令列切換到bin目錄下,然後執行如下命令:

正確啟動後會顯示如下命令:

然後表示我們啟動服務成功。在命令列訪問mycat邏輯資料庫,採用如下的命令:

mysql -utest -ptest -h127.0.0.1 -p8066 -dtestdb

現在通過資料庫查詢資料庫和表,發現只有邏輯資料庫testdb而不是db01, db02, db03;而且表也是統一顯示的,而不是分布在不同的實際資料庫中。參考如下:現在在訪問mycat在資料庫中插入資料,看資料能否按照前面配置的路由規則進行分表。

現在執行如下的sql語句進行資料的插入。insert into users(name,indate) values('kk',now());

insert into users(name,indate) values('ss',now());

insert into item(id,value,indate) values(1,100,now());

insert into item(id,value,indate) values(2,100,now());

然後在mycat上檢視是否插入成功,下圖顯示插入成功。

然後登入實際的資料庫,看分表是否成功。下圖顯示分表成功。

圖上顯示,插入的users表中的資料全部在db01中,而item表中的資料通過id取模後均勻的分布在db02和db03中。這樣就根據實際的路由策略進行了分表。測試完成!!~資料進行了分庫分表!1. mysql 高可用:mysql+mycat實現資料庫分片(分庫分表)

Mycat入門教程

官網鏈結 在db02和db03中分別建立item表,sql指令碼如下 create database db02 create table item id int notnull auto increment,value intnot null default 0,indate datetime no...

mycat入門教程

mycat就是乙個資料庫中介軟體,資料庫的 它遮蔽了物理資料庫,應用連線mycat,然後mycat再連線物理資料庫 它支援水平拆分 分庫分表,通過分庫達到分表 支援多種分片規則,比如範圍切片 自然月分片 hash取模分片等 它支援mysql oracle mongodb sql server,並且支...

Mycat入門教程

官網鏈結 mysql 必須是5.5及其以上。users只在db01中儲存。item表被分割到db02和db03中儲存。create database db01 create table users id int notnull auto increment,name varchar 50 not n...