Mycat的安装启动和读写分离

介绍:

  Mycat作为数据库中间件,用来实现读写分离、数据分片(垂直拆分/水平拆分)、多数据源整合等功能。

原理:

  Mycat通过拦截用户发过来的SQL语句,并对其进行特定的分析,如分片分析、路由分析、读写分离分析、缓存分析等,然后将此SQL发往后端对应的数据库,并将返回的结果做适当的处理,最终返回给用户。

安装启动:

  1、将Mycat的tar.gz格式的压缩包拷贝到Linux系统下的opt目录下

  2、使用Linux的编辑脚本(如Xshell),进入到opt目录下解压压缩文件(tar -zxvf 文件名)

  3、将解压后的文件复制到/usr/local目录下(cp -rv mycat /usr/local)

  4、启动前先修改schema.xml

    <?xml version="1.0"?>
    <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
    <mycat:schema xmlns:mycat="http://io.mycat/">
      <!--逻辑库 name名称, checkSQLschema sqlMaxLimit 末尾是否要加 limit xxx-->
      <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"> </schema>
        <!--逻辑库 name名称, dataHost 引用的哪个dataHost database:对应mysql的database-->
        <dataNode name="dn1" dataHost="host1" database="数据库名" />
          <dataHost name="host1" maxCon="1000" minCon="10" balance="0"
            writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
            <heartbeat>select user()</heartbeat>
            <!-- can have multi write hosts -->
            <writeHost host="hostM1" url="写主机ip:3306" user="xxx" password="xxx">

              <readHost host="hostM2" url="读主机ip:3306" user="xxx" password="xxx">
            </writeHost>
          </dataHost>
    </mycat:schema>

  5、验证数据库的访问情况(读写主机都需要使用远程访问的形式进行验证是否连通)

    mysql -u用户名 -p密码 -h对应ip地址 -P3306(写主机)

    mysql -u用户名 -p密码 -h对应ip地址 -P3306(读主机)

    注:

      如本机远程访问报错,请建对应用户(mysql -u用户名 -p密码)
      grant all privileges on *.* to [email protected]‘缺少的host‘ identified by ‘密码‘;

  6、先使用前台启动,确认是否能启动成功。去mycat/bin 目录下执行 ./ mycat console。

  7、(可选择性更改,ctrl+c关闭之后修改,改后再启动)为了区分mycat和mysql的用户名可以进行配置文件的修改server.xml

     <user name="mycat">
      <property name="password">123456</property>
      <property name="schemas">TESTDB</property>
     </user>

  8、登录mysql -umycat -p123456 -P8066 -h 主机ip

  9、后续一系列操作show databases、use TESTDB、show tables

  10、配置读写分离,修改schema.xml的balance(配置成3)

    负载均衡类型,目前的取值有4 种:

    (1)balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的 writeHost 上。
    (2)balance="1",全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且 M1 与 M2 互为主备),正常情况下,M2,S1,S2 都参与 select 语句的负载均衡。
    (3) balance="2",所有读操作都随机的在 writeHost、readhost 上分发。
    (4) balance="3",所有读请求随机的分发到 readhost 执行,writerHost 不负担读压力

原文地址:https://www.cnblogs.com/i-fly/p/10242114.html

时间: 2024-10-08 21:05:10

Mycat的安装启动和读写分离的相关文章

net Core 使用MyCat分布式数据库,实现读写分离

net Core 使用MyCat分布式数据库,实现读写分离 目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 MyCat2.0版本很快就发布了,关于MyCat的动态和一些问题,大家可以加一下MyCat的官方QQ群:106088787.我们今天主要介绍一下,在我们的Asp.net Core中如何使用Mycat,这源于一个大神(Amamiya Yuuko)的分享,但是,这中间还是有少许的 坑 : 首先,因为大神是比较忙的,而且主要分享关键技术,所以有些地方很简略,而往往这些简

proxysql安装配置和读写分离初识

前言 笔者从事MySQL的相关工作,最近线上需要一款性能上佳的MySQL中间件产品,本人在了解一些如ProxySQL.MariaDB MaxScale.MySQL Router.Atlas.DBProxy等相关产品后,经过反复对比和相关测试,初步选用了proxysql.本文是proxysql系列的第一篇,笔者计划proxysql系列的博文将为您介绍proxysql的安装配置.读写分离.可用性测试.深入了解proxysql各组件.proxysql+keepalived实现高可用.proxysql和

实验2 安装Atlas实现读写分离

系统版本:        windows7x64 虚拟机:          centos 6.5x64 ip规划:          主数据库服务器:192.168.0.44 从数据库服务器:192.168.0.54 proxy服务器:192.168.0.29 ssh连接工具:    ssh secure shell client vpn工具:        ssl vpn-plus client 实验内容:        1.为proxy服务器下载安装Atlas 2.配置Atlas 3.运行

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

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

基于Mycat实现的mysql的读写分离

mycat就相当于一个调度器,具有数据库分片功能,本身不存储数据, 其功能是对后端的真实数据库的数据,进行数据划分和数据整合,方便管理 HOW-Mycat-Read&&write separation 现在让我们通过mycat实现数据库的读写分离 本实验中其他配置文件,参见            基于mysql的主从复制之Mycat简单配置和高可用 定义读,写节点 vim   schema.xml 19                 <table name="employ

Mycat读写分离、主从切换学习(转)

http://blog.csdn.net/zhanglei_16/article/details/50707487 Mycat读写分离.主从切换学习问题一:分表.分库的优缺点,以及分表无法成为主流分表方式:是在将一个大表,在一个db库内,分成多个分表,优点是:分开之后的表,仍然在一个库内,便于查看.管理.缺点:db只能在一个服务器内,不能解决I/O问题,负载集中 分库方式:将一个大表,分布在多个DB中,每个DB只保留一部分数据,所有数据组合起来才是全库的数据.优点:优点是分担IO.负载均衡,可以

mycat基础实验之主从配置读写分离和分表

mycat实验之主从配置读写分离和分表 架构图: 1.实验环境: vmware虚机3个   (虚机太少了,电脑有点吃力,3个虚机只能达到基本的测试) 系统centos7     (实验是关闭防火墙和selinux做的) mysql版本5.7 mycat版本1.6 虚机名字和ip: mysql1 192.168.211.138 mysql2 192.168.211.139 mysql3 192.168.211.142 mycat安装在mysql1(192.168.211.138) 这台主机须能够解

window下使用MyCat实现简单的读写分离

参考文档 MyCat权威指南 MyCat项目主页 学会数据库读写分离.分表分库--用Mycat,这一篇就够了! MyCat安装 Java SDK下载(必须JDK7或更高版本) MYSQL下载 (MyCat支持多种数据库接入 如:MYSQL.SQLService.Oracle.MongDB等) MyCat下载(选择稳定版且适合自己系统的压缩包) MyCat目录介绍 目录 说明 bin 封装成服务的命令 catlet mycat扩展功能 conf 配置信息 lib 引用的jar包 log 日志文件,

MyCat实现读写分离+分库分表+全局表

前言 mycat功能强大,配置简单,作为数据库中间件,是一个非常优秀的开源产品,关于MyCat的部署安装,可以参考博文:MyCat部署安装. 本博文将展示mycat的如下功能: 读写分离: 分库分表: 全局表: 环境如下: 系统 IP 主机名 服务 Centos 7.5 192.168.20.2 mysql01 MySQL 5.7.24 Centos 7.5 192.168.20.3 mysql02 MySQL 5.7.24 Centos 7.5 192.168.20.3 mysql03 MyS