mycat 分表分库demo

本文详细介绍了Mycat数据库中间件的安装与配置过程,包括环境搭建、分库分表操作及具体配置文件的修改。通过实例演示了如何在Mycat中实现数据的水平切分,提高数据库读写性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官方下载地址:http://dl.mycat.io/

环境:mysql 5.6  mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz    lunix   centos 7.0   ip:  192.168.1.12  :3306

          mycat 1.6 Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz  lunix   centos 7.0    ip:192.168.1.3  :8066

          jdk  1.8.0_73

2.解压mycat

同样使用rz工具将它上传到/software文件夹下 并解压到/user/local路径下(解压后的文件名就叫做mycat)

进入到/usr/local/mycat/bin/

它下面的mycat是启动文件

./mycat start 启动

./mycat stop 停止

./mycat restart 重启

./mycat status 查看mycat的启动状态

这样mycat就安装好了
 

前面也提到了,mycat安装在了192.168.1.3这台机器上,并且前提装好了jdk。

先用navicat 链接192.168.1.12装了个单机版的mysql。在这个上面,创建3个数据库db1/db2/db3,这几个库中都建一张item(商品表)

建表语句很简单

CREATE TABLE `item` (
  `id` int(11) NOT NULL COMMENT '主键id',
  `name` varchar(20) DEFAULT NULL COMMENT '名称',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

58ce665668005dba12c99284b4b89a25952.jpg

在安装目录的/usr/local/mycat/conf文件夹下,是mycat的各种配置文件存储的地方。

而简单的分库分表操作,需要修改这三个配置文件

schema.xml

server.xml

rule.xml

3a33808be574a00e334f1e70e76b1000d17.jpg

schema.xml配置

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
 
	<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
		<!-- auto sharding by id (long) -->
		<table name="item" dataNode="dn1,dn2,dn3" rule="mod-long" />
	</schema>
	<!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743"
		/> -->
	<dataNode name="dn1" dataHost="localhost1" database="db1" />
	<dataNode name="dn2" dataHost="localhost1" database="db2" />
	<dataNode name="dn3" dataHost="localhost1" database="db3" />
 
	<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
			  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		<!-- can have multi write hosts -->
		<writeHost host="hostM1" url="192.168.1.12:3306" user="root"
				   password="root">
		</writeHost>
	</dataHost>
</mycat:schema>

server.xml

ad2bb74096b691e0bf50ae65a20aced75d8.jpg

 

注意用户名连接的schema的TESTDB要和schema.xml和保持一致

而连接的默认端口是8066 ,用navicat 链接

ff45dfcd79cf0558462a0e02f1c9b26ffaf.jpg

通过navicat  给mycat 插入数据

INSERT INTO item(id, NAME) VALUES(1, 'a');
INSERT INTO item(id, NAME) VALUES(2, 'b');
INSERT INTO item(id, NAME) VALUES(3, 'c');
INSERT INTO item(id, NAME) VALUES(4, 'd');
INSERT INTO item(id, NAME) VALUES(5, 'f');
INSERT INTO item(id, NAME) VALUES(6, 'g');

SELECT * FROM item; 

插入了6条数据,可以看到查询出来的不是按照顺序的。

而看192.168.1.12的db1/db2/db3的库

db1:

9cf6dabadecb051a3233b79607ac40bb82a.jpg

db2:

5c207a6dd74f540d931dc72de0ce785b94e.jpg

db3:

de72da6ad7fd6b0fee9f1c3bb9dd56e3036.jpg

虽然分库了,但可以通过排序将不同库中的数据在查询后,在mycat中排序

31e9f5d559a1f372609eb5ddfbfb16bf808.jpg

转载于:https://my.oschina.net/u/3267498/blog/2253592

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值