数据库集群布置(4) --- mycat中间件配置操作及演示

本文详细介绍了如何在CentOS 7和Windows下配置MySQL服务器,并使用Mycat实现数据库分片。通过配置schema.xml和server.xml,实现了基于ID的自动分片规则,将数据分别插入到不同的数据库中。此外,还提供了启动Mycat时解决常见错误的方法,以及创建表和插入数据的具体步骤。

1. 数据库准备

1.1 centos7 中配置mysql服务器,并创建数据库xcl01,xcl03

在这里插入图片描述

1.2 windows 下的的mysql并创建数据库xcl02

在这里插入图片描述

2 mycat 配置

2.1 schema.xml 配置
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

	<schema name="XCL" checkSQLschema="false" sqlMaxLimit="100">
		<table name="tb_student" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />
	</schema>

	<dataNode name="dn1" dataHost="localhost2" database="xcl01" />
	<dataNode name="dn2" dataHost="localhost2" database="xcl02" />
	<dataNode name="dn3" dataHost="localhost2" database="xcl03" />
	<dataHost name="localhost2" 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.71.129:3306" user="root"
				   password="root">
		</writeHost>
	</dataHost>

</mycat:schema>
2.2 server.xml配置
	# 加字符集属性
	<property name="charset">utf8</property>  
	# 添加逻辑库账号密码
	<user name="root">
		<property name="password">root</property>
		<property name="schemas">XCL</property>
	</user>
2.3 启动 mycat
cd /usr/local/mycat/bin
./mycat console    #控制台启动

启动过程中会包错
JVM appears hung: Timed out waiting for signal from JVM.
ERROR | wrapper | 2009/02/23 03:39:39 | JVM did not exit on request, terminated
DEBUG | wrapper | 2009/02/23 03:39:40 | Waiting 5 seconds before launching another JVM.
STATUS | wrapper | 2009/02/23 03:39:44 | Launching a JVM...

这时的操作是
cd ../
cd conf
vi wrapper.conf
#在该文件中底部添加这两行
wrapper.startup.timeout=300
wrapper.ping.timeout=120
保存退出
cd /usr/local/mycat/bin
./mycat console    #控制台启动

3 测试

3.1 创建表
CREATE TABLE tb_student(
id BIGINT(20) NOT NULL,
NAME VARCHAR(100)
)ENGINE=INNODB DEFAULT CHARSET=utf8
3.2 插入数据
INSERT INTO tb_student(id,NAME) VALUES(1,'张三');
INSERT INTO tb_student(id,NAME) VALUES(5000000,'李四');
INSERT INTO tb_student(id,NAME) VALUES(5000001,'李四');
3.3 解释
1.分片规则是 : auto-sharding-long   (按id进行分片)
id <=500万  	数据插入到  xcl01 数据库
id <=1000万 	数据插入到  xcl02 数据库
id <=1500万 	数据插入到  xcl03 数据库
id> 1500万  时会报错,这时需要加库......
4 结束语
按照上面的操作,你已经可以完成入门
但是精细的研究还有很多坑去爬
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值