博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql-高可用集群[MyCat中间件使用](三)
阅读量:5951 次
发布时间:2019-06-19

本文共 2958 字,大约阅读时间需要 9 分钟。

服务器-节点: 4台

  • mysql-主: 192.168.2.40
  • mysql-从-node-0: 192.168.2.41
  • mysql-从-node-1: 192.168.2.42
  • mycat: 192.168.2.45

操作过程

  • 1.搭建mysql主从节点
  • 2.搭建mycat中间件节点
  • 3.mycat服务配置
  • 4.测试读写分离,读的分发

1.搭建mysql主从节点

2.搭建mycat中间件节点

# 2-1.基础环境搭建: 安装jdk# 下载页面:  https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlrpm -ivh jdk-8u201-linux-x64.rpm# 2-2.下载安装 mycat:wget http://dl.mycat.io/1.6.6.1/Mycat-server-1.6.6.1-release-20181031195535-linux.tar.gz -P /usr/local/src/tar xvf /usr/local/src/Mycat-server-1.6.6.1-release-20181031195535-linux.tar.gz -C /usr/local# 配置: 写入环境变量,增加相应用户echo export PATH=$PATH:/usr/local/mycat/bin >>/etc/profileecho export MYCAT_HOME=/usr/local/mycat >> /etc/profilesource /etc/profile# 增加相应用户groupadd mycat -g 910useradd  mycat -g 910chown -R mycat:mycat /usr/local/mycat

3.mycat服务配置

3-1.读写数据库配置

vim /usr/local/mycat/conf/schema.xml
select user()

balance指的负载均衡类型,目前的取值有4种:

  • 0: 不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。
  • 1: 全部的readHost与stand by writeHost参与select语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且M1与 M2互为主备),正常情况下,M2,S1,S2都参与select语句的负载均衡
  • 2: 所有读操作都随机的在writeHost、readhost上分发。
  • 3: 所有读请求随机的分发到wiriterHost对应的readhost执行,writerHost不负担读压力
    switchType指的是切换的模式,目前的取值也有4种:
  • -1: 表示不自动切换
  • 1: 默认值,表示自动切换
  • 2: 基于MySQL主从同步的状态决定是否切换,心跳语句为 show slave status
    writeType值:
  • 0: 所有请求,分发到第一个: dataHost
  • 1: 所有请求,分发到所有的: dataHost
  • 2: 不执行写操作

3-2.mycat服务,用户配置

vim /usr/local/mycat/conf/server.xml....# 服务端口
8066
....// 管理员配置,读写
123456
TESTDB
// 普通用户配置,只读
123456
TESTDB
true
....

3-3.开启日志debug,启动服务:

vim /usr/local/mycat/conf/log4j2.xml....# 开启debug日志
改为
....# 启动服务mycat start# 启动防火墙规则firewall-cmd --permanent --add-port=8066/tcp && firewall-cmd --reload

4.测试读写分离

// 4-1.分发测试// 4-1-1.先将 schema.xml 中的配置为:  balance=0,不进行分发操作,【读写】全部在【主库-192.168.2.40】....
....// 客户端链接mycat![](https://s1.51cto.com/images/blog/201904/06/d69dfb492c47a1f35dda3e7d4621d46c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)// 分别查看: 数据库(【主-192.168.2.40】,【从0-192.168.2.41】,【从1-192.168.0.42】)查询次数,写入次数:// 查询次数show global status like 'Com_select';// 写入次数show global status like '%Com_in%';// 【客户端】执行查询: 10次,注意:工具可能不能直接打开表进行操作,只能运行sql语句SELECT * FROM `user` limit 1;INSERT `user`(name) VALUES('王五1');INSERT `user`(name) VALUES('王五2');INSERT `user`(name) VALUES('王五3');// 分别查看: 数据库(主,从0,从1)查询次数,应该只有【主库-192.168.2.40】有明显的增加//// 4-1-2.更改schema.xml 中的配置为: balance=3,读在从库,写在主库// 客户端】执行查询: 10次// 分别查看: 数据库(主,从0,从1)查询次数,应该只有【从0-192.168.2.41】,【从1-192.168.0.42】有明显的增加

5.遗留问题:

  • 主库-宕机后,查询语句也无法执行
  • 从库-有一台宕机后,查询语句也无法执行

转载于:https://blog.51cto.com/3168834/2374749

你可能感兴趣的文章
相逢在栀枝花开的季节
查看>>
linux下git自动补全命令
查看>>
Ubuntu14.04LTS更新源
查看>>
Linux报“Unknown HZ value! (288) Assume 100”错误
查看>>
mysql多实例实例化数据库
查看>>
我的友情链接
查看>>
golang xml和json的解析与生成
查看>>
小弟的新书《Ext JS权威指南》终于出版了
查看>>
好吧好吧,就在这里消磨时间
查看>>
二层的,DTP+CAM/ARP
查看>>
2011工作总结
查看>>
javascript 操作DOM元素样式
查看>>
Android 内存管理 &Memory Leak & OOM 分析
查看>>
[转]html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法
查看>>
[水]三个数学的小技巧题
查看>>
[leetcode-342-Power of Four]
查看>>
MongoDB3.0 创建用户
查看>>
2017-2018-1 20155319 《信息安全系统设计基础》第3周学习总结
查看>>
express 3.0.x 中默认不支持flash() 的解决方法
查看>>
uva-111-dp
查看>>