MyCat安装及配置读写分离

Posted 努力了什么都会有

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyCat安装及配置读写分离相关的知识,希望对你有一定的参考价值。

今天学习下MyCat这款中间件,但是在学习之前需要先了解下上一篇文章     。

1、 什么是MyCat?

  1. 一个彻底开源的,面向企业应用开发的大数据库集群。

  2. 支持事务、ACID、可以替代mysql的加强版数据库。

  3. 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群。

  4. 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server。

  5. 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品。

  6. 一个新颖的数据库中间件产品。


2、为什么要使用MyCat(优势)?

基于阿里开源的Cobar产品而研发,Cobar的稳定性、可靠性、优秀的架构和性能以及众多成熟的使用案例使得MyCat一开始就拥有一个很好的起点,站在巨人的肩膀上,我们能看到更远。业界优秀的开源项目和创新思路被广泛融入到MyCat的基因中,使得MyCat在很多方面都领先于目前其他一些同类的开源项目,甚至超越某些商业产品。
MyCat背后有一支强大的技术团队,其参与者都是5年以上软件工程师、架构师、DBA等,优秀的技术团队保证了MyCat的产品质量。
MyCat并不依托于任何一个商业公司,因此不像某些开源项目,将一些重要的特性封闭在其商业产品中,使得开源项目成了一个摆设。

3、 MyCat工作原理:

MyCat主要是通过对SQL语句的拦截,然后经过一定规则的分片解析、路由分析、读写分离分析、缓存分析等,然后将SQL发给后端真实的数据库,并将返回的结果做出处理返回给客户端。
大致拓扑图


4、MyCat的安装


下载地址    http://dl.mycat.io/
tar -zxf  MyCat.tar     #上传至  /usr/local并解压

启动操作
cd mycat/bin/ #进入bin目录../mycat start #启动mycat


查看是否启动成功
cd mycat/logs/cat wrapper.log


显示如下启动成功
STATUS | wrapper | 2019/07/27 15:24:02 | --> Wrapper Started as DaemonSTATUS | wrapper | 2019/07/27 15:24:02 | Launching a JVM...INFO | jvm 1 | 2019/07/27 15:24:03 | Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=64M; support was removed in 8.0INFO | jvm 1 | 2019/07/27 15:24:06 | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.orgINFO | jvm 1 | 2019/07/27 15:24:06 | Copyright 1999-2006 Tanuki Software, Inc. All Rights Reserved.INFO | jvm 1 | 2019/07/27 15:24:06 |INFO   | jvm 1    | 2019/07/27 15:24:10 | MyCAT Server startup successfully. see logs in logs/mycat.log


5、MyCat的配置

Mycat主要有三个配置文件

  • Service.xml   Mycat的配置文件,设置账号、参数等

  • Rule.xml        Mycat分库分表规则

  • Schema.xml  Mycat对应的物理数据库和数据库表的配置


首先我们进入到config 文件夹下面

cd mycat/conf

分别配置以下两个文件   schema.xml     server.xml
schema.xml :
<?xml version="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schema xmlns:mycat="http://io.mycat/">    <!-- TESTDB1 mycat的逻辑库名称,链接需要用的 -->    <schema name="mycat_test" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>        <!-- database 是指定MySQL数据库名字 -->    <dataNode name="dn1" dataHost="localhost1" database="test" /> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat>        <!-- 可配置多个主数据库 --> <writeHost host="hostM1" url="192.168.70.202:3306" user="user" password="user"> <!-- 可以配置多个从数据库 --> <readHost host="hostS2" url="192.168.70.203:3306" user="root" password="root" /> </writeHost> </dataHost></mycat:schema>

server.xml :
<?xml version="1.0" encoding="UTF-8"?><!-- - - Licensed under the Apache License, Version 2.0 (the "License");  - you may not use this file except in compliance with the License. - You  may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0  - - Unless required by applicable law or agreed to in writing, software -  distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the  License for the specific language governing permissions and - limitations  under the License. --><!DOCTYPE mycat:server SYSTEM "server.dtd"><mycat:server xmlns:mycat="http://io.mycat/">    <!-- 可读可写用户 --> <user name="root" defaultAccount="true"> <property name="password">root</property>        <property name="schemas">mycat_test</property> </user>
<!-- 只读用户 --> <user name="user"> <property name="password">user</property>        <property name="schemas">mycat_test</property> <property name="readOnly">true</property> </user></mycat:server>

配置完之后 重新启动mycat,用mysql远程工具进行连接测试即可。
  • 只读账号          user   user   端口号8066

  • 可读可写账号    root   root   端口号8066


最后附上MyCat GitHub地址 
https://github.com/MyCATApache/Mycat-Server

MyCat安装及配置读写分离
 

以上是关于MyCat安装及配置读写分离的主要内容,如果未能解决你的问题,请参考以下文章

Mycat配置读写分离

mycat 的安装和读写分离的配置

mycat2读写分离配置

Centos 7使用MyCat搭建 MySQL-读写分离

mycat基本概念及读写分离一

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