使用MyCat中间件实现主从复制&读写分离

目录

前提

准备Mycat

修改mycat配置文件

启动mycat

连接MyCat

测试基于Mycat中间件的主从操作

回顾自定义读写分离策略

回顾基于中间件的读写分离策略 


 

前提

 

我们已经对mysql实现了基本的读写分离,一主一从。

https://blog.csdn.net/Delicious_Life/article/details/106154307 

 

 

准备Mycat

 

我们把下载好的Mycat包拖到/haoke/mycat目录下,这里使用的mycat版本是1.6.6.1

使用MyCat中间件实现主从复制&读写分离_第1张图片

cd到压缩包所在目录,执行解压 

tar -xvf Mycat-server-1.6.6.1-release-20181031195535-linux.tar.gz 

解压成功后删除解压包

rm -rf Mycat-server-1.6.6.1-release-20181031195535-linux.tar.gz 

重命名

mv mycat mycat01

 

 

修改mycat配置文件

 

cd mycat01/conf

 

先修改server.xml,这个文件进行mycat系统配置,和用户设置。 

vim server.xml

我们先删除里面所有内容 

编辑系统配置和用户配置,用户名itcast,密码itcast123,用户所使用的逻辑库叫做itcast




		
			0
			1
			0
			0
			2
			false
			0
			0
			1
			64k
			1k
			0
			384m
			false
		
	
		
			itcast123
			itcast
		

再修改schema.xml,这个文件用来配置主从关系

vim schema.xml

同样是先删除再新增,根据实际情况修改,注意schema的name是你在server.xml中配置的用户名

table的name是mycat中间件管理的具有同步功能的表名,dataNode中的database是分片数据库的名称。




        
        
                
        
        
                select user()
                
                        
                
        

mycat负载均衡的规则

上面的配置我们设置负载均衡的规则为3 

使用MyCat中间件实现主从复制&读写分离_第2张图片

接下来我们修改rule.xml文件,设置分片规则,也就是取模分片的规则

vim rule.xml

在这个位置,把值改为1

使用MyCat中间件实现主从复制&读写分离_第3张图片

 

 

启动mycat

 

进入bin目录 

/haoke/mycat/mycat01/bin

测试mycat是否配置成功

./mycat console

下图代表mycat配置成功

使用MyCat中间件实现主从复制&读写分离_第4张图片

启动mycat,还是在bin目录下

./startup_nowrap.sh

下图代表启动成功

使用MyCat中间件实现主从复制&读写分离_第5张图片

------------------------------------------------ 

扩展下如何停止mycat,输入命令查看mycat启动端口

通过kill进程号杀死即可~ 

kill 进程号

------------------------------------------------ 

 

 

连接MyCat

 

mycat的默认端口号是8066,用户名和密码是刚才咱们在配置文件中配置的itcast和itcast123 。

个人尝试,只有在mycat使用此命令启动时“./mycat console”,navicat才能连接成功,如果navicat连接成功后操作mycat报错,可以尝试重新启动mycat解决问题

连接成功后长这个德行,注意itcast库和tb_ad表是根据你的xml文件中配置规则自动生成的,但是此时tb_ad是个逻辑空表,暂时不能用,如果你没有生成itcast数据库,可以在3360master01中新建一个itcast数据库,重启mycat进行测试

使用MyCat中间件实现主从复制&读写分离_第6张图片

 

 

测试基于Mycat中间件的主从复制

 

在mycat的数据库中进行如下操作

创建表

CREATE TABLE `tb_ad` (
	`id` bigint(20) NOT NULL AUTO_INCREMENT,
	`type` int(10) DEFAULT NULL COMMENT '广告类型',
	`title` varchar(100) DEFAULT NULL COMMENT '描述',
	`url` varchar(200) DEFAULT NULL COMMENT '图片URL地址',
	`created` datetime DEFAULT NULL,
	`updated` datetime DEFAULT NULL,
	PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='广告表';

新增数据

INSERT INTO `tb_ad` (`id`, `type`, `title`, `url`, `created`, `updated`) VALUES ('1','1', 'UniCity万科天空之城', 'http://itcast-haoke.oss-cn-qingdao.aliyuncs.com/images/2018/11/26/15432029097062227.jpg','2018-11-26 11:28:49','2018-11-26 11:28:51');

使用MyCat中间件实现主从复制&读写分离_第7张图片

这回再连接你的master01和slave01,都同时多出来了一个itcast数据库,一张和mycat中tb_ad内容一致的表

使用MyCat中间件实现主从复制&读写分离_第8张图片

 

 

回顾自定义读写分离策略

 

我们的读写分离基于主从复制,主负责写,从负责读

我们之前在schema.xml中配置的,所有读请求都走3307,所有写请求走3306

使用MyCat中间件实现主从复制&读写分离_第9张图片

 

 

回顾基于中间件的读写分离策略 

 

现在我们成功做到了通过操纵MyCat操作数据库集群!
使用MyCat中间件实现主从复制&读写分离_第10张图片

你可能感兴趣的:([MyCat])