Mysql-高可用集群[MyCat中间件使用](三)

服务器-节点: 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主从节点

Mysql-高可用集群主从单一模式-binlog

2.搭建mycat中间件节点

# 2-1.基础环境搭建: 安装jdk
# 下载页面:  https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
rpm -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/profile
echo export MYCAT_HOME=/usr/local/mycat >> /etc/profile
source /etc/profile
# 增加相应用户
groupadd mycat -g 910
useradd  mycat -g 910
chown -R mycat:mycat /usr/local/mycat

3.mycat服务配置

3-1.读写数据库配置

vim /usr/local/mycat/conf/schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/"><!-- 声明一个逻辑表, 表名为TESTDB, 和server.xml中的对应 --><schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema><!-- 通过dataHost定义的数据库: database="xh"(真实数据库) --><dataNode name="dn1" dataHost="dataHost01" database="xh" /><dataHost name="dataHost01" maxCon="1000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native"><heartbeat>select user()</heartbeat><!-- 写入节点(主节点) --><writeHost host="serverM1" url="192.168.2.40:3306" user="myuser" password="Aa123456"><!-- 读取节点(从节点) --><readHost host="serverS0" url="192.168.2.41:3306" user="myuser" password="Aa123456"/><readHost host="serverS1" url="192.168.2.42:3306" user="myuser" password="Aa123456"/></writeHost></dataHost>
</mycat:schema>

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
....
# 服务端口
<property name="serverPort">8066</property>
....
// 管理员配置,读写
<user name="root" defaultAccount="true"><property name="password">123456</property><property name="schemas">TESTDB</property>
</user>
// 普通用户配置,只读
<user name="user" defaultAccount="true"><property name="password">123456</property><property name="schemas">TESTDB</property><property name="readOnly">true</property>
</user>
....

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

vim /usr/local/mycat/conf/log4j2.xml
....
# 开启debug日志
<asyncRoot level="info" includeLocation="true">    改为    <asyncRoot level="debug" includeLocation="true">
....
# 启动服务
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】
....
<dataHost name="dataHost01" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native">
....
// 客户端链接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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/279749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

yum安装mysql5.6

1.检查系统是否安装其他版本的MYSQL数据 yum list installed | grep mysql yum -y remove mysql-libs.x86_64 2.安装及配置 wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm rpm -ivh mysql-community-release-el6-5.noarch.rpm yum repolist all | grep…

离开互联网行业_如何使用互联网再也不会离开家

离开互联网行业Thanks to the Internet, activities like “going outside” or “being a productive member of the community” are becoming increasingly optional parts of daily life. When your inner hermit feels like putting on his vampire cape, simple tricks l…

iOS 11开发教程(十三)iOS11应用编辑界面添加视图

iOS 11开发教程&#xff08;十三&#xff09;iOS11应用编辑界面添加视图 在iOS中添加视图的方式有两种&#xff1a;一种是使用编辑界面添加视图&#xff1b;另一种是使用代码添加视图。以下是这两个方式的详细介绍。 1.编辑界面添加视图 使用编辑界面添加视图是一个相当简单的工…

限流算法(记录cyc大佬的专栏)

限流的必要性 如果一段时间内请求的数量过大&#xff0c;就会给服务器造成很大压力&#xff0c;可能导致服务器无法提供其它服务。 计数器算法 通过一个计数器 counter 来统计一段时间内请求的数量&#xff0c;并且在指定的时间之后重置计数器。该方法实现简单&#xff0c;但是…

bzoj 1024 [ SCOI 2009 ] 生日快乐 —— 递归

题目&#xff1a;https://www.lydsy.com/JudgeOnline/problem.php?id1024 因为每次把一块切成两块&#xff0c;所以可以枚举从哪里切开&#xff0c;然后递归求解&#xff1b; 一开始用了不太对的贪心思路&#xff0c;想着一定去切较长边&#xff0c;但看来不一定。 代码如下&a…

HBase存储剖析与数据迁移

1.概述 HBase的存储结构和关系型数据库不一样&#xff0c;HBase面向半结构化数据进行存储。所以&#xff0c;对于结构化的SQL语言查询&#xff0c;HBase自身并没有接口支持。在大数据应用中&#xff0c;虽然也有SQL查询引擎可以查询HBase&#xff0c;比如Phoenix、Drill这类。但…

windows os x_如何立即在OS X上获取Windows样式的窗口捕捉

windows os xApple’s recent announcement that the upcoming OS X release (El Capitan or 10.11) will finally, at long last, come with the ability to snap windows to your screen edges. A feature Windows users have enjoyed since 2009. 苹果公司最近宣布即将发布的…

Install Odoo 11 on CentOS 7

2019独角兽企业重金招聘Python工程师标准>>> Odoo is the most popular all-in-one business software in the world. It offers a range of business applications including CRM, website, e-Commerce, billing, accounting, manufacturing, warehouse, project m…

创建maven项目,配置maven地址

2019独角兽企业重金招聘Python工程师标准>>> 在eclipse中&#xff0c;新建maven项目next第二步&#xff0c;选择webapp输入id及包名&#xff0c;完成新建给项目build path&#xff0c;添加1.8版本jdk和tomcat项目右键属性 project Facets&#xff0c;切换成web项目&…

如何在Excel中隐藏单元格,行和列

There may be times when you want to hide information in certain cells or hide entire rows or columns in an Excel worksheet. Maybe you have some extra data you reference in other cells that does not need to be visible. 有时您可能想在某些单元格中隐藏信息或在…

金三银四,跳槽为敬

不是不想跳&#xff0c;是如今的市场水冷&#xff0c;挪不开脚。 三月有“黄金”。 过去很多年&#xff0c;这个被誉为市场黄金期的阶段&#xff0c;最热闹的旗帜属于房地产&#xff0c;其次是人才市场。跳槽二字&#xff0c;充满诱惑。对每一个想要改变的人而言&#xff0c;…

yum搭建本地仓库、国内源、下载rpm包、源码安装

yum搭建本地仓库[rootlocalhost ~]# mount /dev/cdrom /mnt/mount: /dev/sr0 写保护&#xff0c;将以只读方式挂载cp -r /etc/yum.repos.d /etc/yum.repos.d.bak[rootlocalhost ~]# cp -r /etc/yum.repos.d/ /etc/yum.repos.d.ori/ //复制rm -f /etc/yum.repos.d/*[rootlocalh…

如何在Word文档中添加页眉或页脚

Headers and footers are useful for adding things such as page numbers, dates, file names, and disclaimers to documents. Word allows you to add headers and footers with built-in, ready-made layouts or add your own custom headers and footers. 页眉和页脚对于在…

python基础知识-8-三元和一行代码(推导式)

python其他知识目录 1、三元运算&#xff08;三目运算&#xff09; 三元运算符就是在赋值变量的时候&#xff0c;可以直接加判断&#xff0c;然后赋值格式&#xff1a;[on_true] if [expression] else [on_false]res 值1 if 条件 else 值2 其他语言类似结构&#xff1a;判段的…

双11成交多少和我无关,但这个魔性MV真的让我笑喷!

今年天猫双11&#xff0c;印象最深的就是“祝你双11快乐”这句话&#xff01;它让大家感觉到双11不再只是一个购物节&#xff0c;而是一个能引起广泛共鸣、让大家有快乐情感的真正节日。以往的传统节日&#xff0c;都有一个标志性的符号&#xff0c;正如脑海中的每年春晚&#…

ios beta 下载_如何回滚到iOS 10(如果您使用的是iOS 11 Beta)

ios beta 下载So you’ve installed the iOS 11 beta and, well, you don’t love it. No problem, because you can roll right back to iOS 10. 因此&#xff0c;您已经安装了iOS 11 Beta &#xff0c;但是&#xff0c;您不喜欢它。 没问题&#xff0c;因为您可以直接回滚到i…

JmsTemplate sendAndReceive 设置超时

通过调用sendAndReceive方法&#xff0c;实现发送消息之后可以同步接收返回信息。 Message replyMsg this.jmsQueueTemplate.sendAndReceive(new MessageCreator(){Overridepublic Message createMessage(Session sn) throws JMSException {TextMessage txtMsg sn.createText…

亚信科技数据库AntDB通过金融分布式事务数据库标准测试

近日,南京, 中国信息通信研究院云计算与大数据研究所(以下简称“中国信通院云大所”)组织专家对亚信科技(股票代码:01675.HK)的数据库产品AISWare AntDB(以下简称“AntDB”),进行了金融分布式事务数据库标准测试,所有功能顺利通过测试。该测试的通过充分彰显了亚信科技AntDB是一…

安装sql2012 需要安装net3.5 没有的话 安装不成功

Error while enabling Windows feature : NetFx3, Error Code : -2146498298 在 Windows 8 或 Windows Server 2012 中安装 .NET Framework 3.5 时出现错误代码&#xff1a;0x800F0906 winx 管理员权限 打开cmd命令提示符处&#xff0c;运行下面的命令&#xff1a; Dism /onl…

instagram发布工具_如何在不发布照片的情况下保存已编辑的Instagram照片

instagram发布工具Unfortunately, there’s no built-in method for saving your edited Instagram photos without posting them first. However, with this neat trick, you can add Instagram filters to your photos and save them locally to your phone without actually…