mycat实现数据库的读写分离

目录

第一章:mysql的主从复制之一主一从
第二章:mysql的主从复制之双主双从
第三章:mycat实现数据库的读写分离
第四章:mycat实现mysql分库(垂直切分)
第五章:mycat实现mysql分库(水平切分)
第六章:mycat ER表与全局表
第七章:mycat全局序列号

mycat实现数据库的读写分离

前置配置:

准备4台mysql服务器node01、node02、node03和node04。并且实现双主双从的配置。不了解如何配置的请看第一章和第二章。
这里四台服务器的IP分别为:

组别服务器名IP地址角色
第一组node01192.168.1.106master
第一组node02192.168.1.107slave
第二组node03192.168.1.108master
第二组node04192.168.1.109slave

mycat的安装

  • mycat的下载
    官方下载地址为:
http://dl.mycat.org.cn/1.6.7.1/Mycat-server-1.6.7.1-release-20200209222254-linux.tar.gz
  • 环境配置:
解压文件到/usr/local文件夹下
tar -zxvf  Mycat-server-1.6.7.1-release-20200209222254-linux.tar.gz -C /usr/local
配置环境变量
vi /etc/profile
添加如下配置信息:
export MYCAT_HOME=/usr/local/mycat
export PATH=$MYCAT_HOME/bin:$PATH:$JAVA_HOME/bin

mycat配置

进入到/usr/local/mycat/conf目录下,修改该文件夹下的配置文件

  • 修改server.xml文件,配置用户信息。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://io.mycat/">
	<user name="root" defaultAccount="true">
		<property name="password">123456</property>
		<!--设置虚拟数据库名称,可以随便起名,但是需要和下面的schema.xml中的配置对应上-->
		<property name="schemas">TESTDB</property>
		<property name="defaultSchema">TESTDB</property>
	</user>
</mycat:server>
  • 修改schema.xml文件,配置数据库信息
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
	   <!--
        name:设置虚拟数据库名称,可以随便起名,但是需要和上面的server.xml中的配置对应上
        dataNode:设置引用下面的dataNode配置名称
        -->
        <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
        </schema>
        <!--
        name:设置dataNode 的名称需要与schema 中的dataNode一样
        dataHost:设置引用下面的dataHost 配置名称
        database:真实数据库的库名
        -->
        <dataNode name="dn1" dataHost="host1"  database="duck"/>
        <!--
        name:设置dataHost 的名称需要与dataNode 中的dataHost一样
        balance:此属性有四个值,用来做负载均衡的,下面我们来详细介绍
	​		balance=0 :不开启读写分离机制,所有读操作都发送到当前可用的writehost上
	​		balance=1:全部的readhost和stand by writehost参与select 语句的负载均衡,简单的说,当双主双从模式下,其他的节点都参与select语句的负载均衡
	​		balance=2:所有读操作都随机的在writehost,readhost上分发
	​		balance=3:所有读请求随机的分发到readhost执行,writehost不负担读压力 
        switchType:参数writeType,表示写操作发送到哪台机器,此参数有两个值可以进行设置:
	​		writeType=0:所有写操作都发送到配置的第一个writeHost,第一个挂了切换到还生存的第二个
	​		writeType=1:所有写操作都随机的发送到配置的writehost中,1.5之后废弃
        -->
        <dataHost name="host1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
        		<!--心跳包-->
                <heartbeat>select user()</heartbeat>
                <!--写节点配置 host设置连接名称,唯一任意值-->
                <writeHost host="hostM1" url="192.168.1.106:3306" user="root" password="123456">
                		 <!--读节点配置-->
                         <readHost host="hostS1" url="192.168.1.107:3306" user="root" password="123456"></readHost>
                 </writeHost>
                 <!--写节点配置-->
                 <writeHost host="hostM2" url="192.168.1.108:3306" user="root" password="123456">
                         <!--读节点配置-->
                         <readHost host="hostS2" url="192.168.1.109:3306" user="root" password="123456"></readHost>
                 </writeHost>
        </dataHost>
</mycat:schema>

启动mycat

mycat的启动有两种方式,一种是控制台启动,一种是后台启动。使用控制台启动的方式启动,当配置文件写错之后,可以方便的看到错误。但是在生产环境中,使用后台启动的方式比较稳妥。

  • 控制台启动:去mycat/bin目录下执行
./mycat console
  • 后台启动:去mycat/bin目录下执行 ./mycat start
./mycat start

按照如上配置在安装的时候应该不会报错,如果出现错误,根据错误的提示解决即可。成功启动如下:
在这里插入图片描述

登录验证

管理窗口的登录

​ 从另外的虚拟机去登录访问当前mycat,输入如下命令即可

mysql -uroot -p123456 -P 9066 -h 192.168.85.111

​ 此时访问的是mycat的管理窗口,可以通过show @@help查看可以执行的命令

数据窗口的登录

​ 从另外的虚拟机去登录访问mycat,输入命令如下:

mysql -uroot -p123456 -P8066 -h 192.168.85.111

​ 数据窗口可以执行各种增删改查的SQL。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值