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

简介: 快速学习 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 这两台节点上进行了测试,判断配置是否生效。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
SQL 关系型数据库 MySQL
MyCat2介绍以及部署和读写分离/分库分表(MyCat2.0)
MyCat2介绍以及部署和读写分离/分库分表(MyCat2.0)
2173 0
|
存储 中间件 关系型数据库
数据库切片大对决:ShardingSphere与Mycat技术解析
数据库切片大对决:ShardingSphere与Mycat技术解析
1428 0
|
关系型数据库 MySQL 开发工具
MySQL5.7主从配置(Docker)
MySQL5.7主从配置(Docker)
1085 0
|
SQL 关系型数据库 数据库
学习分布式事务Seata看这一篇就够了,建议收藏
学习分布式事务Seata看这一篇就够了,建议收藏
20458 2
Java 通过IP获取对应的国家省份城市经纬度(离线文件方案)
一. 除了调用接口查询城市, 还可以通过离线文件查询城市, 使用GeoLite2 City库 二. 离线库下载地址: https://dev.maxmind.com/geoip/geoip2/geolite2/ 点击如下位置下载压缩文件 文件解压后有一个文件名为GeoLite2-City.
|
5月前
|
Java 测试技术 Spring
简单学Spring Boot | 博客项目的测试
本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性。
258 0
|
7月前
|
Kubernetes Cloud Native 调度
《分布式任务调度框架深度对比:Quartz/XXL-JOB/Elastic-Job/PowerJob选型指南》​
根据IDC预测,到2025年全球将有75%的企业任务调度系统需要重构以适应云原生架构。技术雷达监测:定期关注CNCF技术趋势报告渐进式改造:从非核心业务开始验证新框架人才储备:重点培养具备K8s Operator开发能力的调度专家评估现有系统的云原生适配度在测试环境部署PowerJob 4.3.3参与CNCF调度技术社区讨论制定6个月框架迁移路线图(注:本文数据来自各框架官方路线图、CNCF年度报告及笔者压力测试结果,转载请保留出处)
1558 0
|
SQL 前端开发 NoSQL
SpringBoot+Vue 实现图片验证码功能需求
这篇文章介绍了如何在SpringBoot+Vue项目中实现图片验证码功能,包括后端生成与校验验证码的方法以及前端展示验证码的实现步骤。
SpringBoot+Vue 实现图片验证码功能需求
|
开发框架 Java API
「SpringBrick快速入门指南」:一款基于Spring Boot的高级插件化开发框架
「SpringBrick快速入门指南」:一款基于Spring Boot的高级插件化开发框架
1076 0
|
关系型数据库 MySQL 中间件
mysql 中间件 mycat2 的详细安装及配置步骤
右上角下载里面有个文件下载服务,点进去发现无法访问