mysql之20分钟用mycat搞定mysql读写分离

发布时间:2018-01-20 23:27:59编辑:丝画阁阅读(790)

1. mycat实现mysql的读写分离

1.1. mycat简介

mycat是最近很火的一款国人发明的分布式数据库中间件,它是基于阿里的cobar的基础上进行开发的mycat在应用当中的作用可以看下图

mysql之20分钟用mycat搞定mysql读写分离

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

1.2. 安装mycat

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

mysql之20分钟用mycat搞定mysql读写分离

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

mysql之20分钟用mycat搞定mysql读写分离

设置mycat的环境变量

1. vi /etc/profile

export MYCAT_HOME=/usr/local/mycatexport PATH=$MYCAT_HOME/bin:$PATH

使配置文件立即生效

1. source /etc/profile

mysql之20分钟用mycat搞定mysql读写分离

1.3. 配置mycat

进入mycat的配置文件目录

1. cd /usr/local/mycat/conf/

1. vi schema.xml

mysql之20分钟用mycat搞定mysql读写分离

这个配置文件项目比较多,可以参考mycat官网具体查看。

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

vi server.xml

mysql之20分钟用mycat搞定mysql读写分离

用户qy73user,对应的MyCat逻辑库连接到的数据节点对应的主机为主从复制集群,并通过MyCat实现了读写分离

1.4. 启动mycat

运行启动命令

mycat start

第一次启动会遇见下面的问题。

问题一:

mysql之20分钟用mycat搞定mysql读写分离

解决方法:

这个是由于/etc/hosts中没有配置主机名server005 和ip 192.168.153.164的映射

mysql之20分钟用mycat搞定mysql读写分离

问题二:mysql之20分钟用mycat搞定mysql读写分离

解决方法:

此问题是mycat配置文件server.xml中的默认配置没有删除导致。

mysql之20分钟用mycat搞定mysql读写分离

再次运行启动命令:mycat start

mysql之20分钟用mycat搞定mysql读写分离

1.5. 测试mycat

1) 可以使用mysql客户端连接或者navicat来连接mycat

mysql之20分钟用mycat搞定mysql读写分离

2) 在mysql主机上的qy73库中创建表tbl_role

mysql之20分钟用mycat搞定mysql读写分离

3) 可以使用已经在navicat中创建的mycat连接查看是否存在tbl_role表

mysql之20分钟用mycat搞定mysql读写分离

1.6. 测试mysql读写分离

1) 进入mycat的日志目录注意修改log4j的配置文件info为debug

mysql之20分钟用mycat搞定mysql读写分离

2) 进入到logs目录,开始实时监控mycat.log

cd /usr/local/mycat/logs/

mysql之20分钟用mycat搞定mysql读写分离

3) 先测试一下读操作

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

mysql之20分钟用mycat搞定mysql读写分离

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

那么我们执行多次看看

mysql之20分钟用mycat搞定mysql读写分离

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

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

mysql之20分钟用mycat搞定mysql读写分离

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

mysql之20分钟用mycat搞定mysql读写分离

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

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

感兴趣的朋友可以点击头像关注我,每天都有更新,大家一起进步!

关键字