用mycat做读写分离:基于 MySQL主从复制

mycat是最近很火的一款国人发明的分布式数据库中间件,它是基于阿里的cobar的基础上进行开发的

 搭建之前我们先要配置mysql的主从复制,这个过程很长,我这里就不写了,有兴趣的可以看看我写的这篇文章。

linux centos下mysql数据库的主从复制环境搭建


mycat在应用当中的作用可以看下图

用mycat做读写分离:基于 MySQL主从复制_第1张图片


mycat可以让程序员只需要关心业务代码的编写,而不用担心后端数据库集群的负载均衡,读写分离,分库分表的数据分片逻辑的编写,只要直接连接mycat就可以了

首先我们准备一台干净的centos机器,安装好jdk


解压mycat的安装包到/user/local/下

用mycat做读写分离:基于 MySQL主从复制_第2张图片

设置mycat的环境变量

 vi /etc/profile

使配置文件立即生效

source /etc/profile


进入mycat的配置文件目录

cd /usr/local/mycat/conf/
vi schema.xml
这个配置文件主要是用来配置数据库节点,逻辑表等等东西的




	
	
	

	
	

	
	
	
	
	
	
		
		show slave status
		
		
		
		
	
	


接下来配置用户权限,系统变量

 vi server.xml




	
	
	druidparser
	utf8mb4
	

	
							
	
	
		root
		pcx_schema
	
							
	
	
		root
		pcx_schema
		true
	


修改防火墙,允许mycat的端口被外界访问

 vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8066 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9066 -j ACCEPT

然后重启防火墙

service iptables restart
cd /usr/local/mycat/bin/

进入mycat的脚本目录

用mycat做读写分离:基于 MySQL主从复制_第3张图片


运行启动命令

 ./mycat start
我们可以使用mysql客户端连接或者navicat来连接mycat

用mycat做读写分离:基于 MySQL主从复制_第4张图片



用mycat做读写分离:基于 MySQL主从复制_第5张图片


接下来我们测试一下读写分离

进入mycat的日志目录

cd /usr/local/mycat/logs/



先测试一下读操作

我们连接到mycat发送一句select *命令试试

用mycat做读写分离:基于 MySQL主从复制_第6张图片


可以看到select 操作被路由到了192.168.1.7也就是我们的slave节点

那么我们执行多次看看

用mycat做读写分离:基于 MySQL主从复制_第7张图片

结果还是被路由到了读节点


接下来我们测试一下写操作



可见插入被路由到了master节点


最后我们看看master的数据是否被同步到slave

用mycat做读写分离:基于 MySQL主从复制_第8张图片


记录成功的同步过来了,可见读写分离搭建成功。

你可能感兴趣的:(用mycat做读写分离:基于 MySQL主从复制)