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

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

主库:129

从库:130

Mycat实现Mysql数据库读写分离-LMLPHP

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

  1.windows版本

    下载-》解压
    Mycat实现Mysql数据库读写分离-LMLPHP

    启动:mycat/bin/目录,双击startup_nowrap.bat
    Mycat实现Mysql数据库读写分离-LMLPHP

  

  2.linux版本

    下载-》解压

    下载到/home/install目录下
    Mycat实现Mysql数据库读写分离-LMLPHP

    解压到/usr/local/mycat目录下
    Mycat实现Mysql数据库读写分离-LMLPHP

    启动:进入bin目录 cd /usr/local/mycat/bin/ ,执行./mycat start
    Mycat实现Mysql数据库读写分离-LMLPHP

  3.其他

  Mycat实现Mysql数据库读写分离-LMLPHP

二、读写分离配置(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.连接

  Mycat实现Mysql数据库读写分离-LMLPHP

  2.测试

  Mycat实现Mysql数据库读写分离-LMLPHP

 

 

05-10 21:32