Mycat的简单使用

1.简介

mycat是国人开发的一款开源的数据库中间件,他的作用就是伪装成一个真的数据库,然后在它背后,连的是多种类型,集群分布式的真实数据库。

1.1 mycat的几个概念

schema: 逻辑库,与MYSQL中的Database(数据库)对应,一个逻辑库中定义了所包含的Table
table: 表,即物理数据库中存储的某一张表,与传统数据库不同,这里的表格需要声明其所存储的逻辑数据节点DataNode,这是这是通过表格的分片规则定义来实现的,table可以定义其所属的“子表(childTable)”,子表的分片依赖于与“父表”的具体分片地址,简单的说,就是属于父表里某一条记录A的子表的所有记录都与A存储在同一个分片上。
分片规则: 是一个字段与函数的捆绑定义,根据这个字段的取值来放回所在存储的分片(DataNode)的序号,每个表格可以定义一个分片规则,分片规则可以灵活扩展,默认提供了基于数字的分片规则,字符串规则等。
dataNode: mycat的逻辑数据节点,是存放table的具体物理节点,也称之为分片节点,通过DataSource来关联后端某个数据库上,一般来说,为了高可用性,每个DataNode都设置两个DataSource,一主一从,当主节点宕机,系统自动切换到从节点。
dataHost: 定义某个物理库的访问地址,用于捆绑到dataNode上。
mycat配置文件都在conf目录下

安装包(1.6.7.1版本): https://pan.baidu.com/s/1E8X15D07AasHgSRuUrTMsw
提取码:1234

2.启动

解压安装完后目录如下:

在bin文件夹下双击startup_nowrap.bat 就可以启动了


或许有人问mycat怎么使用它的客户端,答案很简单mysql怎么使用mycat就怎么使用

conf/server.xml目录下可查看用户密码

mysql -uroot -p123456 -P8066 -h127.0.0.1

3.水平切分搭建

conf/schema.xml文件夹下配置如下

在这里插入图片描述

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
		
	<schema name="test" checkSQLschema="false" sqlMaxLimit="100">
		<table name="t_user" dataNode="dn1,dn2" primaryKey="id" rule="mod-long"  />
	</schema>
	
	<dataNode name="dn1" dataHost="localhost1" database="test" />
	<dataNode name="dn2" dataHost="localhost1" database="test01" />


	
	<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
			  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		
		<writeHost host="hostM1" url="119.91.238.112:3301" user="root"
				   password="123456">
			
			
		</writeHost>
		<writeHost host="hostS2" url="119.91.238.109:3302" user="root"
				   password="123456" />
		
	</dataHost>
	
</mycat:schema>

conf/server.xml配置:

	<user name="root" defaultAccount="true">
		<property name="password">123456</property>
		<property name="schemas">test</property>
		
		<!-- 表级 DML 权限设置 -->
		<!-- 		
		<privileges check="false">
			<schema name="TESTDB" dml="0110" >
				<table name="tb01" dml="0000"></table>
				<table name="tb02" dml="1111"></table>
			</schema>
		</privileges>		
		 -->
	</user>

	<user name="user">
		<property name="password">user</property>
		<property name="schemas">test</property>
		<property name="readOnly">true</property>
	</user>
	

conf/rule.xml配置

4.测试

重启mycat

然后在mycat中执行sql创建表,并自动同步到物理库中,注意是mycat执行建表sql

DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
  `id` int(11) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT into `t_user` (id, name) VALUES ('3','3');
INSERT into `t_user` (id, name) VALUES ('4','4');
INSERT into `t_user` (id, name) VALUES ('5','5');
INSERT into `t_user` (id, name) VALUES ('6','6');




查询

SELECT COUNT(*) from t_user;

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值