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

实验环境

两台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(‘[email protected]‘);

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的自动切换功能验证成功!

时间: 07-04

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

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

MySQL主从服务器 实现方式: MySQL  REPLICATION Replication可以实现将数据从一台数据库服务器(master)复制到一台或多台数据库服务器(slave) 默认情况下这种情况属于异步复制,无需维持长连接 通过配置,可以复制所有库或者几个库,甚至库中的一些表 它是MySQL内建的,自带 Replication的原理 主服务器master将数据库的改变写入二进制日志文件,从服务器slave同步这些二进制日志,并生成中继日志,从服务器根据中继日志,执行这些改变 DML:S

测试mysql主从配置:实现一主一从读写分离

一.主从介绍Mysql主从又叫Replication.AB复制.简单讲就是A与B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,实现数据实时同步. 二.主从作用1.实时灾备,用于故障切换2.读写分离,提供查询服务3.备份,避免影响业务 三.在两台服务器上都按装mysql 1.环境准备关闭防火墙以SELINUX[[email protected] ~]# systemctl stop firewalld[[email protected] ~]# systemctl disable fi

mysql主从(基于bin-log)以及mysql-proxy读写分离

准备好三台机器: 192.168.220.129(master) 192.168.220.143(slave) 192.168.220.144(proxy) 确保三台机器上mysql(5.6.29)都已装好 my.cnf配置 master: [mysqld1]basedir = /usr/localmysqldatadir = /data/mysqlport = 3306server_id=1socket = /tmp/mysql.socklog-bin=mysql-bin slave: [my

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

1.为方便,我在一个windows下安装两个mysql实例,端口分别是 3306.3307 打开 my.ini 或 my-default.ini 文件 配置 basedir datadir 和port ,默认3306.配置如下 主节点 [mysqld] log-bin=mysql-bin //[必须]启用二进制日志 basedir = D:\developer\mysql-5.6.24-win32 datadir = D:\developer\mysql-5.6.24-win32\data #

基于MYCAT的MYSQL主从与读写分离配置详解与示例

1.不使用Mycat托管MySQL主从服务器,简单使用如下配置:          <dataNodename="dn1" dataHost="localhost1" database="db1"/>          <dataNodename="dn2" dataHost="localhost1" database="db2"/>          <d

Mysql一主多从和读写分离配置简记

Mysql一主多从和读写分离配置简记 标签: mysql数据库服务器class数据库servermanager 2012-05-30 16:44 14981人阅读 评论(1) 收藏 举报  分类: 数据库 版权声明:本文为博主原创文章,未经博主允许不得转载. 近期开发的系统中使用MySql作为数据库,由于数据涉及到Money,所以不得不慎重.同时,用户对最大访问量也提出了要求.为了避免Mysql成为性能瓶颈并具备很好的容错能力,特此实现主从热备和读写分离.在此简做纪要,以备日后所用! 一.配置主

MYSQL优化-分表分库、主从复制、读写分离

一.垂直拆分 垂直拆分就是要把表按模块划分到不同数据库表中(当然原则还是不破坏第三范式) 二.水平拆分 垂直切分只是把表按模块划分到不同数据库,但没有解决单表大数据量的问题,而水平切分就是要把一个表按照某种规则把数据划分到不同表或数据库里. Scale-up与Scale-out区别 Scale Out是指Application可以在水平方向上扩展.一般对数据中心的应用而言,Scale out指的是当添加更多的机器时,应用仍然可以很好的利用这些机器的资源来提升自己的效率从而达到很好的扩展性. Sc

mysql的主从复制(二)mysql-proxy实现读写分离

安装前准备(三台虚拟机): 主机1: 172.16.24.77   安装msyql服务器端  mysql-proxy 主机2: 172.16.24.88    安装mysql服务器端(mysql主) 主机3: 172.16.24.99   安装mysql服务器端(mysql从) (注,我这里的三台主机都是安装好了mysql的,如里你没有安装请参照前面的博客有安装过程) 一.安装mysql-proxy 所需安装包(mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit

Mycat实现Mysql主从读写分离

一.概述 关于Mycat的原理网上有很多,这里不再详述,对于我来说Mycat的功能主要有如下几种: 1.Mysql主从的读写分离 2.Mysql大表分片 3.其他数据库例如Oracle,MSSQL,DB2等的读写分离和分片. 之所以第3点单独列出来只是因为它不常用,而且使用的JDBC,连接Mysql则是直接使用Mysql协议. 对于Mycat的分片功能,由于遇到了几个很严重的BUG,同时分片带来的一系列并发问题比较繁杂,因此测试之后放弃了,这里只讨论读写分离. 二.安装配置 1.安装JDK(要求