前提,準備3至4臺伺服器,如果3臺的話,其中一台既是mysql,也是mycat伺服器
並在每台伺服器上 安裝好jdk1.8和mysql
jdk1.8安裝步驟,可檢視博文
mysql安裝步驟,可檢視博文,mysql的遠端訪問許可權,最好開啟,方便測試,方法自行baidu
主機分布情況
172.16.208.214 mycat伺服器 【邏輯庫,邏輯表】
172.16.208.213
mysql伺服器 【實際庫,實際表】
172.16.208.212
mysql伺服器 【實際庫,實際表】
172.16.208.211
mysql伺服器 【實際庫,實際表】
1 修改 mycat的配置檔案,主要是 schema.xml,server.xml,rule.xml
2 根據上面的 schema.xml中的配置檔案,在 mysql伺服器中【211,212,213】,共3臺,新建 實際庫 actual_db1
3 啟動 mycat服務
後台啟動
./bin/mycat start
普通啟動,直接看日誌
./bin/mycat console
./bin/mycat stop
./bin/mycat status
./bin/mycat restart
4 根據上面的server.xml配置檔案中的賬號,密碼,連線到 mycat 伺服器,注意埠是8066
mysql -h 172.16.208.214 -p 8066 -u root -p
5 根據上面的 schema.xml中的配置檔案,在 mycat中新建邏輯庫 【看版本,也許不用】,新建邏輯表
再檢視mysql的3個庫,發現表都自動建立好啦
(如果實際庫中已經有表,且邏輯表和實際表名也相同,就可省略此步驟)
create table logic_table_1 (
id bigint (20) not null,
title varchar (100) not null,
primary key (id)
) engine = innodb default charset = utf8 ;
6 在 mycat中,對邏輯表做增刪改查操作,測試,至於資料會如何分布,就是rule.xml中的配置,這裡使用預設
因為我們採用的分片規則是每節點儲存500萬條資料,所以當id大於5000000則會儲存到第二個節點
上。# 會新增到 211機器
insert into logic_table_1(id,title) values(1,'goods1');
insert into logic_table_1(id,title) values(2,'goods2');
insert into logic_table_1(id,title) values(3,'goods3');
# 會新增到 212機器
insert into logic_table_1(id,title) values(5000001,'goods5000001');
<?xml version="1.0"?>
select user()
select user()
select user()
123456
logic_db1
user
logic_db1
true
Mycat水平分片策略(水平分表拆分)
可以實現按照地區進行分表 根據不同的列舉 常量 進行分表儲存 1.mysql中建立3個資料庫分別為user db1 user db2 user db3 2.在3個資料庫中建立3個一樣的資料表 order info order info表中有字段name 3.配置mycat環境 schema.xml ...
mycat 水平分表
相對於垂直拆分的區別是 垂直拆分是把不同的表拆到不同的資料庫中,而水平拆分是把同乙個表拆到不同的資料庫中。水平拆分不是將表的資料做分類,而是按照某個欄位的某種規則來分散到多個庫之中,每個表中包含一部分資料。例如,分庫中的舉例,orders表水平分到order win和order linux兩個庫中。...
mycat水平分表
和垂直分庫不同,水平分表,是將那些io頻繁,且資料量大的表進行水平切分。基本的配置和垂直分庫一樣,我們需要改的就是我們的 schema.xml和rule.xml檔案配置 server.xml不用做任何修改 除此之外,我們還需要在兩個分片資料庫伺服器上建立分片用的資料庫10.0.4.181上建立 or...