MyCat-集群-两台 MyCat 的安装配置 | 学习笔记

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 快速学习 MyCat-集群-两台 MyCat 的安装配置

开发者学堂课程【全面讲解开源数据库中间件MyCat使用及原理(三):MyCat-集群-两台 MyCat 的安装配置】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/757/detail/13287


MyCat-集群-两台 MyCat 的安装配置

内容介绍:

一、 MyCat 安装配置

二、 课程总结

 

一、 MyCat 安装配置

MySQL 的主从复制已经搭建完毕,接下来需要安装配置的是 MyCat ,共有两个 MyCat 节点,分别在 157 和 158 上面, 157 上面的 MyCat 已经安装完成,接下来先配置 157 上面的 MyCat, 然后再考虑 158 上面的 MyCat 的安装及配置。

在 157 这台服务器上, MyCat 之前已经安装完毕,也就是 /usr/local/mycat, 配置文件是 schema.xml。接下来需配置 157 上 MyCat 的配置信息(读写分离)

1schema.xml

1 <?xm1 version="1.0"?>

2 <!DOCTYPE mycat:schema SYSTEM"schema.dtd">

3<mycat:schema xm1ns:mycat="http://io.mycat/">

4 <schema name="ITCAST" checkSQLschema="true" sq1MaxLimit="100">

5 <table name="user" dataNode="dn1" primaryKey="id"/>

6 </schema>

7 <dataNode name="dn1" dataHost="localhost1" database="db01" />

8 <dataHost name="1oca1host1" maxCon="1000" minCon="10" balance="1" writeType="O”dbType="mysq1"

9 dbDriver="native" switchType="1" slaveThreshold="100">

10 <heartbeat>select user()</heartbeat>

11 <writeHost host="hostM1" ur1="192.168.192.160:3306" user="root" password="itcast">

12 <readHost host="hostS1" ur1="192.168.192.161:3306" user="root" password="itcast" />

13 </writeHost>

14 </dataHost>

15 </mycat:schema>

现在已经有两个 MySQL 的节点,并且它们直接已经配置完成了主从复制,要通过  MyCat 来完成读写分离的配置,也就是写通过主节点来完成,读通过从节点来完成,

接下来需配置 schema.dtd

1 <?xm1 version="1.0

2 <!DOCTYPE mycat:schema SYSTEM "schema.dtd">

3<mycat:schema xmlns:mycat="http://io.mycat/">

5 <schema name="ITCAST" checks0Lschema="true" sqlMaxLimit="100">

6 <table name="user" dataNode="dn1" primaryKey="id"/>

7 </schema>

9<dataNode name="dn1" dataHost="localhost1" database="db03" />

11 <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql"

12 dbDriver="native" switchType="1" slaveThreshold="100">

13 <heartbeat>select

" user="root" password="itcast">

14 <writeHost host="hosts1" url="192.168.192.158:3306" user="root" password="itcast" />

15 <readHost host="hosts1" url="192.168.192.158:3306" user="root" password="itcast" />

16 </writehost>

18 <writeHost host="hostM2" url="192.168.192.159:3306" user="root" password="itcast">

19 <readHost host="hosts2" url="192.168.192.160:3306" user="root" password="itcast" />

20 </writeHost>

21 </dataHost>

23 </mvcat:schema>

需要替换掉如下内容:

5 <schema name="ITCAST" checks0Lschema="true" sqlMaxLimit="100">

6 <table name="user" dataNode="dn1" primaryKey="id"/>

7 </schema>

9<dataNode name="dn1" dataHost="localhost1" database="db03" />

11 <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql"

12 dbDriver="native" switchType="1" slaveThreshold="100">

13 <heartbeat>select

" user="root" password="itcast">

14 <writeHost host="hosts1" url="192.168.192.158:3306" user="root" password="itcast" />

15 <readHost host="hosts1" url="192.168.192.158:3306" user="root" password="itcast" />

16 </writehost>

18 <writeHost host="hostM2" url="192.168.192.159:3306" user="root" password="itcast">

19 <readHost host="hosts2" url="192.168.192.160:3306" user="root" password="itcast" />

20 </writeHost>

21 </dataHost>

替换为:

4 <schema name="ITCAST" checkSQLschema="true" sq1MaxLimit="100">

5 <table name="user" dataNode="dn1" primaryKey="id"/>

6 </schema>

7 <dataNode name="dn1" dataHost="localhost1" database="db01" />

8 <dataHost name="1oca1host1" maxCon="1000" minCon="10" balance="1" writeType="O”dbType="mysq1"

9 dbDriver="native" switchType="1" slaveThreshold="100">

10 <heartbeat>select user()</heartbeat>

11 <writeHost host="hostM1" ur1="192.168.192.160:3306" user="root" password="itcast">

12 <readHost host="hostS1" ur1="192.168.192.161:3306" user="root" password="itcast" />

13 </writeHost>

14 </dataHost>

里面配置的逻辑库依然是 schema.dtd ,逻辑表是 user,数据节点是 dn1,指向的是下面的 dateNode , dateNode 里面指向 datehost , 数据主机是 localhost1 , 在 localhost1 中配置了最小连接数,最大连接数以及负载均衡策略以及数据库的类型等信息,主要是 writeHost(主节点),当前的主节点是 157,从节点是 158,用户名 root,密码 itcast, 然后再矫正笔记,如此操作 schema.dtd 便成功修改,接下来再修改 server.xml

2、server.xml

如下:

<user name="root" defaultAccount="true">

<property name="password">G00bnFVWrAuFgr1JMuMZkvfDNyTpoiGU7n/Wlsa151CirHQnANVk3NzE3FErx8v6pAc00ct<property name="schemas">ITCAST</property><pfoperty name="readonly">false</property><property name="benchmark">1000</property><property name="usingDecrypt">1</property>

<!-- 表级 DML 权限设置

<privileges check="true">

<schema name="ITCAST" dml="1111" >

<table name="TB TEST" dml="1110"></table></schema></privileges> -->

</user>

<user name="user">

<property name="password">123456</property><property name="schemas">ITCAST</property><property name="readonly">true</property></user>

</mycat:server>

在其中需配置访问的用户名及密码(已经配置完成无需过多操作),因此第一个节点(157)上的 MyCat 就配置完成。

image.png

接下来 157 配置完成后需用同样的操作来配置 158,首先需在 158 此台节点上安装 MyCat,然后再进行配置。具体操作过程:将 MyCat  的安装包上传到 158 上,此步骤需借助一个指令(scp)进行远程拷贝,scp 拷贝 MyCat 的远程安装包,然后使用 root 进行复制,需要在 158 上进行复制,复制后放在 root 目录下,然后输入158 root 的密码,复制完成后,接下来执行解压操作,解压完成后还需进行配置,依然要通过 Adding Profile 来进行配置,主机是 192.168.159.158,Port 为 22,连接方式选择 SFTP,连接上之后可修改里面的配置文件 schema.xml 以及 server.xml ,对于 schema.xml 以及 server.xml,实际上其配置与 157 上的配置是一样的,连接上之后再修改第二个节点中的配置,在 MyCat2 中的 usr 找到 local ,再找到 usr 中的 MyCat ,再点击 MyCat 中的 conf,再其中找到 server.xml , server.xml 和第一个是一样的,可直接拷贝,然后对于 server.xml 中的如下配置也可直接拷贝:

< user name =" root " defaultAccount =" true ">

< property name =' password ">123456</ property > property name =" schemas '> TESTDB </ property ><!-﹣表级 DML 权限设置﹣->

<!--

< privileges check =" false ">

< schema name =" TESTDB " dml ="0110">

< table name ="tb01" dml ="O000"> X / table >

< table name ="tb02” dml ="1111">/ table >

</ schema >

</ privileges >

</ user >

< user name =' user ">

< property

< property

< property

V name =" password "> user く/ property >

name =" schemas '> TESTDB </ property >

y name =" readOnly "> true </ property >

</ user

完成之后接下来要重启 MyCat

重启完成之后,158 上的 MyCat 也需要重启,bin 目录下的 MyCat 未启动过就是 start , MyCat 重启之后,接下来需要进去到这两台 MyCat 中,进入之后执行 mysql-h 192.168.192.157-p 8066-u root-p, 如此便进入到第一台 MyCat ,接下来再对第二台 MyCat 重复刚才的指令操作。

注意:执行中 ip 需变为 mysql-h 192.168.192.158-p 8066-u root-p。

实际操作中会存在问题(JVM,也就是 158上安装了 MyCat ,未安装 jdk),因此此时要在 157 上再传一个文件( jdk 的安装包),再执行指令 scp 传到 jdk ,然后以 root 身份进行传递,传递到 192.168.192.158,然后传递到 root 目录下,拷贝完成之后需在 158 上安装 jdk ,解压到 share 目录下,解压完成之后还需配置其环境变量,修改 etc 下的 profile, 接下来再其中还需配置两项信息(可直接从157 上拷贝,即 /etc/profile),如下图:

image.png

配置完成后执行指令( source/etc/profile ),然后再执行 java-version ,此时若 jdk 安装完成,接下来可启动 MyCat ,bin/ MyCat start, 启动之后再去看日志判定 MyCat 是否成功启动,若成功启动,接下来就可连接  MyCat (mysql-h 192.168.192.158-p 8066-u root-p),如此操作,两台 MyCat 都已安装并且配置完成。

image.png

配置完成之后要验证 MyCat 能否实现 MySQL 的读写分离,验证时需查看 MyCat  的日志,需修改 158 此台节点上的日志级别,切换到 /usr/local/mycat 此目录下,里面有一个 conf 目录,在其中有 log4j2.xml.

如下:

image.png

将 info 改为 debug,另外一台服务器 157 也需要进行修改,但之前已经完成了修改。

修改为 debug 后,接下来需要查看 MyCat 的日志,需监控其日志,判断其工作是否正常。

先验证 157,use ITCAST 切换到数据库 show tables,查看其中的表。

当在 MyCat 中执行查询操作时会转发到每一个节点,如下:

image.png

当执行 SQL 语句会将请求转发到 MySQL 节点(服务器 158),

158 执行读操作,157 执行写操作。具体如下:

image.png

接下来拷贝一个 insert 语句,如下:

image.png

执行插入操作后,如下图:

image.png

同样的操作再来验证 158,操作完成之后会发现 158 无日志,原因是修改了日志级别就要重启 /bin/mycat start ,重启完成之后重新连接,再重新打开日志,可发现 slect 语句依然是通过 158,insert 是通过 157。

 

二、 课程总结

综上是 MyCat 的安装以及配置,安装之前的课程已经讲解了,配置只需配置schema.xml 以及 server.xml,对于这两个配置文件在其节点的配置是相同的,配置完成之后分别在 157 和 158 这两台节点上进行了测试,判断配置是否生效。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
Oracle NoSQL Java
10MyCat - MyCat安装前期准备
10MyCat - MyCat安装前期准备
58 0
|
3月前
|
SQL 中间件 关系型数据库
MyCat的安装
MyCat的安装
|
7月前
|
SQL 缓存 关系型数据库
【Mycat】mycat综述(附安装配置)
【Mycat】mycat综述(附安装配置)
516 0
|
运维 关系型数据库 MySQL
MyCat-架构剖析-MyCat 主从切换实现 | 学习笔记
快速学习 MyCat-架构剖析-MyCat 主从切换实现
MyCat-架构剖析-MyCat 主从切换实现 | 学习笔记
|
SQL 存储 关系型数据库
04MyCat - MyCat概述
04MyCat - MyCat概述
115 0
|
负载均衡 关系型数据库 MySQL
Mycat需要安装在哪台服务器?
Mycat需要安装在哪台服务器?
175 0
|
存储 SQL 算法
MyCat - 分片 - MyCat 环境搭建 | 学习笔记
快速学习 MyCat - 分片 - MyCat 环境搭建
MyCat - 分片 - MyCat 环境搭建 | 学习笔记
|
负载均衡 网络协议 关系型数据库
MyCat-集群-HAProxy 安装配置 | 学习笔记
快速学习 MyCat-集群-HAProxy 安装配置
MyCat-集群-HAProxy 安装配置 | 学习笔记
|
存储 Java 中间件
MyCat-入门-环境搭建-MyCat 安装 | 学习笔记
快速学习 MyCat-入门-环境搭建-MyCat 安装
MyCat-入门-环境搭建-MyCat 安装 | 学习笔记
|
SQL 存储 缓存
MyCat 的安装及使用
MyCat的安装及使用 1、mycat的安装 1、环境准备 ​ 本次课程使用的虚拟机环境是centos6.5 ​ 首先准备四台虚拟机,安装好mysql,方便后续做读写分离和主从复制。
309 0