Mycat整合mysql搭建读写分离(一主一从)

Mycat是一款优秀的数据库中间件,通过Mycat整合mysql,我们可以在主从复制的基础上搭建读写分离,如果主从复制尚未搭建好,可以参考上一篇文章MySQL搭建主从复制
1.准备一台主机,101.101.101.22,
2.下载mycat安装包(mycat需要java环境,若系统未安装JDK,需要先安装JDK,另外一般建议将mycat安装在/usr/local/下):
wget http://dl.mycat.io/1.6.5/Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
3.解压安装包:tar -zxvf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
4.配置环境变量:vi /etc/profile,在系统变量中添加:
export MYCAT_HOME=/usr/local/mycat
5.保存后退出,使配置文件生效:source /etc/profile;
6.切换到mycat目录下,修改mycat配置文件:cd /usr/local/mycat/conf;
这里,我们主要修改两个配置文件:server.xml和schema.xml,其中,server.xml主要用于配置mycat账号信息。我们修改一下这里即可,保存后退出:在这里插入图片描述
schescma.xml配置文件
1.基于一主一从的配置,我的配置文件如下,其他不用的都可以先删除或注释起来

2.保存后启动mycat:cd /usr/local/mycat/bin;
3.执行命令:./mycat start;
4.启动后,登陆mycat,命令:mysql -umycat -pww123456;登陆成功后如图所示:在这里插入图片描述
至此,mycat配置基本完成,接下来测试读写分离
登陆主机101.101.101.20,切换到数据库market_wang,在原来创建的mytable表中插入这样一条数据,
命令:insert into mytable values(2,@@hostname);
这里说一下思路:@@hostname表示表示系统主机名称,由于从库和主库名称不一样,插入这条数据后,我们设置的主从复制规则是:binlog_format=STATEMENT;#表示基于SQL语句的复制.则会导致主从数据库数据不一致。
而我们在schescma.xml配置文件中,我们读写分离策略设置的balance为2,当balance=2,所有的读操作都随机发送到所有的writeHost,readHost上。
我们通过mycat多次查询mytable表,会发现id为2的name值会随机变化,即可验证
在这里插入图片描述
当然,如果我们设置balance=3,则效果会更加明显,所有的查询,都会返回从机的名称,有兴趣的话可以尝试以下,记得修改完配置文件以后,需要重启mycat: cd usr/local/mycat/bin/;执行:./mycat restart 即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值