Mycat实现Mysql数据库读写分离

Posted 七脉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mycat实现Mysql数据库读写分离相关的知识,希望对你有一定的参考价值。

 

 

Linux和Windows环境下搭建Mycat数据读写分离

前提需要:1.服务器装有JVM虚拟机,就是JDK。2.两个mysql数据库已经实现主从复制,参考:https://www.cnblogs.com/zwcry/p/9407810.html

主库:129

从库:130

 

一、Mycat安装,官网:http://www.mycat.io/,下载地址http://dl.mycat.io/1.6-RELEASE/,这个是1.6版本,含有windows和linux版本。  

  1.windows版本

    下载-》解压
    

    启动:mycat/bin/目录,双击startup_nowrap.bat
    

  

  2.linux版本

    下载-》解压

    下载到/home/install目录下
    

    解压到/usr/local/mycat目录下
    

    启动:进入bin目录 cd /usr/local/mycat/bin/ ,执行./mycat start
    

  3.其他

  

 

二、读写分离配置(Mycat支持集群,多主多从),这里只写单主但从配置

  1.配置简述

 --server.xml:是Mycat服务器参数调整和用户授权的配置文件。

  --schema.xml:是逻辑库定义和表以及分片定义的配置文件。

  --rule.xml:  是分片规则的配置文件,分片规则的具体一些参数信息单独存放为文件,也在这个目录下,配置文件修改需要重启MyCAT。

  --log4j.xml: 日志存放在logs/log中,每天一个文件,日志的配置是在conf/log4j.xml中,根据自己的需要可以调整输出级别为debug                           debug级别下,会输出更多的信息,方便排查问题。

  --autopartition-long.txt,partition-hash-int.txt,sequence_conf.properties, sequence_db_conf.properties 分片相关的id分片规则配置文件

  --lib        MyCAT自身的jar包或依赖的jar包的存放目录。

  --logs        MyCAT日志的存放目录。日志存放在logs/log中,每天一个文件


 2.server.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://io.mycat/">
    <system>
         <property name="defaultSqlParser">druidparser</property>
    </system>
    
    <user name="root">
        <property name="password">123456</property>
        <property name="schemas">MS</property>
    </user>

    <user name="user">
        <property name="password">123456</property>
        <property name="schemas">MS</property>
        <property name="readOnly">true</property>
    </user>
</mycat:server>

  3.schema.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

    <schema name="MS" checkSQLschema="true" sqlMaxLimit="100">
        <table name="company" primaryKey="id" dataNode="dn1" />
    </schema>
    <dataNode name="dn1" dataHost="localhost1" database="ms" />
    <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
              writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <writeHost host="hostM1" url="192.168.159.129:3306" user="root" password="123456">
            <readHost host="hostS2" url="192.168.159.130:3306" user="root" password="123456" />
        </writeHost>
    </dataHost>
</mycat:schema>

  4.其他

    其他配置属性,可参照源文件注释,简单的读写分离,这些就可以了。

 

三、连接Mycat,测试

  1.连接

  

 

  2.测试

  

 

 

 

 

 

以上是关于Mycat实现Mysql数据库读写分离的主要内容,如果未能解决你的问题,请参考以下文章

Linux 使用Mycat实现读写分离(基于Mysql的读写分离)

mycat实现MySQL读写分离

MySQL(18) 通过Docker搭建Mycat实现读写分离

Mycat实现Mysql主从读写分离

Mycat实现Mysql数据库读写分离

MyCAT实现MySQL数据库读写分离