mycat服务器:192.168.1.10

mysql服务器:192.168.1.132

1.在mysql服务器中新建3个结构相同的数据库shop_cart1,shop_cart2,shop_cart3用于分库备用;

2.mycat服务器中配置如下:

①schema.xml

Mycat中间件对mysql数据表进行水平分片分库处理配置

图中方框shop_cart指要对主库中进行分库处理的表名(真实表名),database="shop_cart1"等指要连接的数据库名(第一步新建的),rule规则填写下面配置的rule规则名称。

②rule.xml

Mycat中间件对mysql数据表进行水平分片分库处理配置

一个tableRule代表一个规则,这里采用sharding-by-murmur以hash进行计算,column表示以那个字段进行hash计算

③server.xml

Mycat中间件对mysql数据表进行水平分片分库处理配置

方框中默认是2,改为0表示使用本地配置文件sequence_conf.properties。

④sequence_conf.properties文件中, 新增以下四行:

CART.HISIDS=

CART.MINID=1001  最小id

CART.MAXID=2000  最大id

CART.CURID=1000  当前id

该文件主要是在新增数据时,不用指定新增id具体值(使用next value for MYCATSQE_CART),就会自动添加id。其中CART.是自己命名的,可随意,但是要与MYCATSQE_CART中的CART保持一致。

3.检测效果

在主服务器中执行 mysql -uroot -p123456 -h192.168.1.x  -P8066链接mycat,选择对应数据库和表插入数据:

insert into shop_cart (cartid,productid,productnum,price,userid,createtime) values (next value for MYCATSEQ_CART,1,12,123,100,123123),(next value for MYCATSEQ_CART,1,12,123,200,123123),(next value for MYCATSEQ_CART,1,12,123,300,123123),(next value for MYCATSEQ_CART,1,12,123,300,123123);

然后,执行select * from shop_cart;发现新增了三条数据(实际上这三条数据分别分布在不同的数据库中,其中的增查操作mycat已经代理处理好了)

再进入实际mysql服务器,分别查看shop_cart1,shop_cart2,shop_cart3数据库查看,新增了刚才插入了新数据。

 

相关文章: