mycat服务器:192.168.1.10
mysql服务器:192.168.1.132
1.在mysql服务器中新建3个结构相同的数据库shop_cart1,shop_cart2,shop_cart3用于分库备用;
2.mycat服务器中配置如下:
①schema.xml
图中方框shop_cart指要对主库中进行分库处理的表名(真实表名),database="shop_cart1"等指要连接的数据库名(第一步新建的),rule规则填写下面配置的rule规则名称。
②rule.xml
一个tableRule代表一个规则,这里采用sharding-by-murmur以hash进行计算,column表示以那个字段进行hash计算
③server.xml
方框中默认是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数据库查看,新增了刚才插入了新数据。
(注:在实际项目中数据库连接配置要使用mycat的host(192.168.1.10)和账户密码(root,123456),因为实际项目当中mycat作为项目和mysql链接的中间件!)