天天看點

MYCAT 入門(二)

一.下载和安装

官网:http://www.mycat.io/

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

使用介绍:https://github.com/MyCATApache/Mycat-Server/wiki

选择对用的版本下载,这里以 Mycat-server-1.6-RELEASE-20161028204710-win.tar.gz 为例

没有下载到的可以到我的云盘下载,有1.6的windows,mac和linux版本

链接:https://pan.baidu.com/s/14_MK1hr7Im-nHJRJVWQJoA

提取码:d9ud

 

1.mycat是基于java语言开发的,所以需要先安装java环境;(这一步不介绍)

2.下载 Mycat-server-1.6-RELEASE-20161028204710-win.tar.gz 解压到本地进入Mycat-server-1.6-RELEASE-20161028204710-win\mycat\bin 目录

超级权限打开cmd,执行 mycat.bat instatll

MYCAT 入門(二)

安装成功。

常用命令

MYCAT 入門(二)

二.配置使用

\Mycat-server-1.6-RELEASE-20161028204710-win\mycat\conf 下主要要配置这四个文件

  • server.xml  配置mycat的用户登录信息,以及用户权限
  • schema.xml 配置分库分表,逻辑库与物理库映射关系
  • rule.xml 配置分库分表规则
  • wrapper.conf 配置环境信息

现在我们要用mycat做一个简单的例子,在127.0.0.1:3306的一个实例上创建三个数据库 db1,db2,db3,数据库有一张goods商品表,要求通过商品表的自增主键去摸%3分配不同的数据到三个数据库上;

  • 建库建表
建库:

create database db1 character set utf8;

create database db2 character set utf8;

create database db3 character set utf8;

建表:

CREATE TABLE `goods` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(64) NOT NULL,
  `price` decimal(10,0) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
           

 

  • server.xml

配置逻辑库与连接信息

<user name="root">
   <property name="password">123456</property>
   <property name="schemas">TESTDB</property>
</user>
           
  • schema.xml

配置需要分表,规则,以及逻辑库和物理库映射关系

<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
		<!-- 表配置  dataNode 标识三个数据节点 rule分表的规则 这里是按3去摸 0,1,2 -->
		<table name="goods" primaryKey="id" autoIncrement="true"  dataNode="dn1,dn2,dn3" rule="mod-long" />
		
	</schema>
	<!-- 节点配置 节点对用的物理机器  及 数据库 -->
	<dataNode name="dn1" dataHost="dataHost1" database="db1" />
	<dataNode name="dn2" dataHost="dataHost1" database="db2" />
	<dataNode name="dn3" dataHost="dataHost1" database="db3" />
	
	<!-- 物理机器配置 -->
	<dataHost name="dataHost1" 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="127.0.0.1:3306" user="root"
				   password="admin123">
		</writeHost>
	</dataHost>
           
  • 启动mycat
MYCAT 入門(二)

启动成功,说明配置也正确了;

然后我们就可以像连接mysql一样的方式,连接到mycat,对数据进行操作了;

mysql -uroot -p123456 -h127.0.0.1 -P8066 

mycat默认连接端口是8066

MYCAT 入門(二)
MYCAT 入門(二)

连接后,我们只能看到一个逻辑库TESTDB

现在对数据库进行insert操作,查看效果;

插入6条数据

insert into goods (id,name,price) values (1,'11',11);

insert into goods (id,name,price) values (2,'11',11);

insert into goods (id,name,price) values (3,'11',11);

insert into goods (id,name,price) values (4,'11',11);

insert into goods (id,name,price) values (5,'11',11);

insert into goods (id,name,price) values (6,'11',11);

分别查看我们的db1,db2,db3,可以发现6条数据已经被分到了三个数据库中

explain select * from goods;

MYCAT 入門(二)

 

查询数据的时候,可以看到sql被分发到dn1,dn2,dn3三个节点去执行

至此我们的mycat入门级教程已经学会了,是不是很简单呢

下一篇 将会对配置详解先进行个分析;

一起成长,一起学习,记得点关注哦

 

Â