1.环境准备
本机环境是三台centos6.5
IP
主机名
数据库名
安装软件
192.168.221.131
bruce1
mycat
192.168.221.132
bruce2
db1
mysql
192.168.221.133
bruce3
db2
mysql
192.168.221.134
bruce4
db3
mysql
2.上传并解压MyCat
MyCat是Java语言开发的,只需要上传解压即可!MyCat的使用关键在于其配置
3.逻辑库与逻辑表
Mycat抽象多个myql实例,对外提供唯一的访问数据源
server.xml
配置示例:
druidparser
123456
mycat
MyCat的分片规则
rule.xml
MyCat的分片配置
Schema.xml
配置示例:
rule="sharding-by-intfile" />
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
select user()
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
select user()
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
select user()
修改conf下的partition-hash-int.txt文件 在下面添加10020=2,原本默认的是分两个就是10000和10010,现在我们三个就要三个分类id了,添加一个即可
在bruce2中创建数据库db1
在bruce3中创建数据库db2
在bruce4中创建数据库db3
启动mycat
执行mycat start
tail -100 $MYCAT_HOME/logs/wrapper.log查看结果如下就表明启动成功了
测试mysql表横向分割
在虚拟机外的windows安装Navicat for MySQL,分别连接到三个mysql数据库,执行建表语句create table employee (id int not null primary key,name varchar(100),sharding_id int not null);
使用客户端连接mycat
因为刚才执行了建表语句,这时候连接上了mycat里面也有一个空的employee表
执行如下语句
insert into employee(id,name,sharding_id) values(1, 'I am db1',10000);
insert into employee(id,name,sharding_id) values(2, 'I am db2',10010);
insert into employee(id,name,sharding_id) values(3, 'I am db3',10020);
insert into employee(id,name,sharding_id) values(4, 'I am db1',10000);
insert into employee(id,name,sharding_id) values(5, 'I am db2',10010);
insert into employee(id,name,sharding_id) values(6, 'I am db3',10020);
查询数据情况:
db1
db2
db3