winodws系统mycat部署以及简单使用

一 前期准备

1、mycat winodw安装包

mycat1.6官方下载

2、jdk环境 (1.7以上)  

3、mysql 环境(5.5以上)

4、navicat 客户端

二 mycat简介

1、mycat

mycat作为一个中间件,是数据库管理的优秀方案。详细介绍请看官网

mycat官网

2、mycat拓扑图

winodws系统mycat部署以及简单使用_第1张图片

3、mycat作用

(1)、集中管理多个数据库连接(分布式解决方案)
(2)、配置读写分离
(3)、配置数据库分片(分表、分库)等 (本文视角)


三 mycat部署

1、解压mycat1.6

winodws系统mycat部署以及简单使用_第2张图片

winodws系统mycat部署以及简单使用_第3张图片

2、修改关键配置文件

实际环境如下

主机 数据库实例 数据表
127.0.0.1:3066 db1 t_test
127.0.0.1:3066 db2 t_test
127.0.0.1:3066 db1 t_test2
127.0.0.1:3066 db3 t_test

管理要求

(1)同主机db1,db2,db3中 t_test表 为分片表 以id为分片字段进行数据分片
(2)主机db1中 t_test2表与t_test为关联表  希望通过与其他分片进行join查询

winodws系统mycat部署以及简单使用_第4张图片

按上图需求修改配置。


(1) rule.xml

中定义分片规则与分片算法





                       
                       								
            id                           
            hash-int                 
        
    
	

	 
		partition-hash-int.txt                 
	
	

(2)server.xml

中定义用户以及系统相关变量,如端口等




    
	
		utf8  
		
		      
		             
                   
		   
		
		        
		       
	
	                  
                   
		          
		         
		       
		           
		
		
		                 
		       
		        
		
		
		
		
		     
		        
			
		
		
		            
	
	
	
	
	
	                              
		123456 
		TESTDB  
		 
		
		
		
	

	
		user
		TESTDB
		true
	


(3)schema.xml

中定义逻辑库,表、分片节点等内容





	
	 
	 
	
        
select user()

四 mycat启动

1 、 使用管理员权限打开cmd 

winodws系统mycat部署以及简单使用_第5张图片

2 安装mycat服务并启动

(1)切换到mycat/bin目录 

cd /d D:\Mysoft\mycat\mycat\bin

(2)安装服务

mycat install

(3)启动服务

mycat start

(4)其他操作

mycat restart ##重新启动 修改配置时使用
mycat stop   ##服务停止
mycat pause/resume ##服务暂停/恢复
mycat remove  ##服务移除 需要停止服务
mycat console ##服务调试窗口

五 验证逻辑

1、连接mysql  按照环境要求建立 db1,db2,db3 以及对应的表

winodws系统mycat部署以及简单使用_第6张图片

t_test.sql

/*
Navicat MySQL Data Transfer

Source Server         : 本地mysql
Source Server Version : 50722
Source Host           : localhost:3306
Source Database       : db1

Target Server Type    : MYSQL
Target Server Version : 50722
File Encoding         : 65001

Date: 2018-06-08 17:19:27
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for t_test
-- ----------------------------
DROP TABLE IF EXISTS `t_test`;
CREATE TABLE `t_test` (
  `id` int(11) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

t_test2.sql

/*
Navicat MySQL Data Transfer

Source Server         : 本地mysql
Source Server Version : 50722
Source Host           : localhost:3306
Source Database       : db1

Target Server Type    : MYSQL
Target Server Version : 50722
File Encoding         : 65001

Date: 2018-06-08 17:21:23
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for t_test2
-- ----------------------------
DROP TABLE IF EXISTS `t_test2`;
CREATE TABLE `t_test2` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、 登录mycat服务端

ip:为mycat服务器ip  端口使用服务端口8066 帐号密码为server.xml 定义的帐号密码

winodws系统mycat部署以及简单使用_第7张图片

3 、登录成功,发现其逻辑结构与schema定义的逻辑库 逻辑表一致

winodws系统mycat部署以及简单使用_第8张图片

4 、数据测试

(1)往 db1,db2,db3  t_test中分别插入 id 为 1、2、3 三条数据   亦可通过mycat往t_test写数据 验证分片规则




则Mycat分片表其对应逻辑表查询结果如下

winodws系统mycat部署以及简单使用_第9张图片

(2)往 db1  t_test插入数据

winodws系统mycat部署以及简单使用_第10张图片

则mycat对应全局逻辑表为

winodws系统mycat部署以及简单使用_第11张图片

(3)验证跨库join操作

select * from t_test a  LEFT JOIN t_test2 b on a.id = b.id  ##错误写法

/*!mycat:catlet=io.mycat.catlets.ShareJoin */select * from t_test a, t_test2 b on a.id = b.id ##正确写法
winodws系统mycat部署以及简单使用_第12张图片

六 展望思考

1、mycat虽然集中管理了数据库服务群,但与其他中间件一样存在单点故障问题
2、mycat相对应应用层可以看作一个逻辑数据库,但由于分布式场景,事务支持以及其他mysql上面的限制,需要应用层作出相应的代码处理
3、mycat可以通过mycat-eye进行监控 需要配置zookeeper对mycat进行服务管理

你可能感兴趣的:(mysql,mycat)