实验环境

两台Centos7  MySQL5.7.12 IP地址为:192.168.10.36  192.168.10.37

一台Centos7 Mycat IP地址为:192.168.10.31

一:安装mysql,如下图所示(这里采用yum安装):

二:配置MYSQL,以及建立MYSQL主从

1:初始化密码,由于我没在/root目录下找到第一次启动的随机密码,所以我只能用如下操作

vi /etc/my.cnf

mysqd 字段添加 #skip-grant-tables

然后重启mysql   systemctl restart mysqld    这个时候没有密码也能进去;执行下面这一条语句:

update mysql.user set authentication_string=password(123456) where user='root' and Host = 'localhost';

此时重启mysql后,注释掉刚刚添加的那个字段,systemctl restart mysqld  会告诉你的密码不符合复杂程度要求,需要再次更改;

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234@Mfg');

FLUSH PRIVILEGES;

之后用新的密码登录即可!

2:配置MYSQL主从,mysql配置文件内容修改如下图,主从的server_id一个为36,另外一个为37,此处必须保持不一致:

3:执行如下命令,使其建立主从关系,192.168.10.37为192.168.10.36的Slave

在192.168.10.36上执行:

grant replication slave on *.* to 'sync'@'192.168.10.37' identified by 'sync';

在192.168.10.37上执行:

change master to master_host='192.168.10.36', master_user='repluser',master_password='replpass', master_auto_position=1;(此处使用的是GTID多线程复制)

start slave;

此时使用show slave status\G;可验证主从关系是否建立完成,如下图:

三:配置Mycat

1:逻辑库为myyangtest,逻辑表为:

2:查看schema.xml配置文件如下图所示:

此处为1个dataHost;3个dataNode节点;

3:查看rule.xml配置文件如下图所示:

4:查看server.xml配置文件内容,主要内容如下图所示:

5:启动Mycat,并且开启Mycat的日志的Debug模式,

./bin/mycat start

6:创建myyang表,并开始插入数据;

7:首先验证Mycat读写分离,由此先将balance 设置为3,writetype设置为0,先注释掉第二个writeHost。

先执行如下查询语句,获取此条结果后,

然后打开mycat logs目录下的mycat.log文件,可以看到如下内容;

由上图可以验证,查询的路由是发送到192.168.10.37(从服务器)完成的。

然后执行如下插入语句;

然后再次打开mycat logs目录下的mycat.log文件,可以看到如下内容;

由上图可以看到插入语句的路由是发送到192.168.10.36(主服务器)完成的!

至此,可以验证Mycat的读写分离已经实现!

8:验证Mycat自动切换功能

修改schema.xml内容如下图所示:

修改完成后重启mycat!

此时执行插入语句如下图:

再次打开日志文件,可以看到(如下图)插入语句还是在192.168.10.36(主服务器)上执行;

此时我们将192.168.10.36的mysql服务给关闭!,文件会打印报错信息,如下图所示;

此时我们再此执行一条插入语句:

再次打开日志文件,如下图所示:

由此可以看出,此时插入语句是路由到192.168.10.37(从服务器)完成的!另外我们也可以登陆到192.168.10.37的mysql的db_test3库中进行验证(如下图):

由此Mycat的自动切换功能验证成功!

Mycat在MySQL主从模式(1主1从)下读写分离和及自动切换模式的验证的更多相关文章

  1. Mycat对MySQL进行垂直水平分表分库,读写分离

    1.   MyCAT概述 1.1 背景 随着传统的数据库技术日趋成熟.计算机网络技术的飞速发展和应用范围的扩充,数据库应用已经普遍建立于计算机网络之上.这时集中式数据库系统表现出它的不足: (1)集中 ...

  2. 2-18,19 搭建MySQL主从服务器并并通过mysql-proxy实现读写分离

    MySQL主从服务器 实现方式: MySQL  REPLICATION Replication可以实现将数据从一台数据库服务器(master)复制到一台或多台数据库服务器(slave) 默认情况下这种 ...

  3. mysql 主从master-slave同步复制 配置,为读写分离准备

    1.为方便,我在一个windows下安装两个mysql实例,端口分别是 3306.3307 打开 my.ini 或 my-default.ini 文件 配置 basedir datadir 和port ...

  4. mysql主从怎么样使主为innodb辅为myisam

    MySQL主从复制(linux主+windows从) http://blog.csdn.net/qq_20032995/article/details/54380290 mysql主从怎么样使主为in ...

  5. atlas+mysql主主集群实现读写分离

     atlas+mysql主主集群实现读写分离 前言: 目前线上系统数据库采用的是主主架构.其中一台主仅在故障时切换使用,(仅单台服务器对外提供服务,当一台出现问题,切换至另一台).该结构很难支撑较大并 ...

  6. Mycat实现Mysql主从读写分离

    一.概述 关于Mycat的原理网上有很多,这里不再详述,对于我来说Mycat的功能主要有如下几种: 1.Mysql主从的读写分离 2.Mysql大表分片 3.其他数据库例如Oracle,MSSQL,D ...

  7. mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离

    数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了 ...

  8. Mysql主从备份、主主备份

    简单介绍mysql双机,多机异地热备简单原理实战. 双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步.对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致. 这样做 ...

  9. MariaDB 10 (MySQL DB) 多主复制并实现读写分离

    ----本文大纲 简介 资源配置 拓扑图 实现过程 ==================== 一.简介 MMM 即Master-Master Replication Manager for MySQL ...

随机推荐

  1. Java解析word文档

    背景 在互联网教育行业,做内容相关的项目经常碰到的一个问题就是如何解析word文档. 因为系统如果无法智能的解析word,那么就只能通过其他方式手动录入word内容,效率低下,而且人工成本和录入出错率 ...

  2. Java的必备开发工具

    身为一个Java开发的爱好者,你不得不承认需要安装以下软件 NO.1 Java开发工具包 Java JDK 可以说这个工具包不得不安装,因为这个工具包是开发Java程序的核心! Java JDK工具包 ...

  3. Unity运动残影技能

    残影实现: 1.List<DrawMesh> list,此list中包含某一帧动画模型网格.材质 2.每过一段时间就将运动物体的模型add到list中(优化:未实现,网格合并) 3.Lat ...

  4. hdu5950

    hdu5950 题意 \(给出 f_1 , f_2 ,以及递推式 f_n = 2 * f_{n-2} + f_{n-1} + n^4 ,求 f_n (mod=2147493647)\) 推导一下. \ ...

  5. 【JAVAWEB学习笔记】网上商城实战5:后台的功能模块

    今日任务 完成后台的功能模块 1.1      网上商城的后台功能的实现: 1.1.1    后台的功能的需求: 1.1.1.1  分类管理: [查询所有分类] * 在左侧菜单页面中点击分类管理: * ...

  6. Mybatis中如何查询时间段内的数据

    最后一个是正确的,前边的三个是可能遇到的坑,给大家展示一下,如果不需要的,可以直接跳到最后看: 有时候我们需要查询一张表内一段时间内操作的数据,大家很容易就想到了 between ? and ? 这个 ...

  7. hibernate操作步骤(代码部分)

    1.加载hibernate的核心配置文件 2.创建SessionFactory对象 3.使用SessionFactory创建Session对象 4.开启事务(手动开启) 5.写具体逻辑crud,增删改 ...

  8. JavaScript中的数组

    数组 (1).数组的定义 数组是值的有序集合 javascript数组是无类型的:数组元素可以是任意类型,并且同一个数组的不同元素也可能有不同的类型. 每个值叫做一个元素,而每个元素在数组中有一个位置 ...

  9. 用javascript实现java的Map

    function Map(){ var obj={}; //空的容器 //put方法 this.put=function(key,value){ obj[key]=value; //把键值绑定到obj ...

  10. MVC架构简介及其测试策略

    最近在WEB端测试工作中陷入了瓶颈,单纯的手动功能测试在没有成熟的代码规范之前还是很容易坑的,WEB自动化测试一时半会还没有什么进展,所以决定先学习一下网站用的MVC架构,跟着教程写了一个小网站,大概 ...