Mycat 配置详解

来源:互联网 发布:内蒙古大数据局局长 编辑:程序博客网 时间:2024/06/15 10:42

1.1   需求

把商品表分片存储到三个数据节点上。

 

1.2   安装环境分析

两台mysql数据库服务器:

Host1:192.168.25.134

Host2:192.168.25.166

 

host1环境

操作系统版本 : centos6.4

数据库版本 : mysql-5.6

mycat版本 :1.4 release

数据库名 : db1、db3

 

 

mysql节点2环境

操作系统版本 : centos6.4

数据库版本 : mysql-5.6

mycat版本 :1.4 release

数据库名 : db2

 

MyCat安装到节点1上(需要安装jdk)

1.1   配置schema.xml

1.1.1Schema.xml介绍

Schema.xml作为MyCat中重要的配置文件之一,管理着MyCat的逻辑库、表、分片规则、DataNode以及DataSource。弄懂这些配置,是正确使用MyCat的前提。这里就一层层对该文件进行解析。

 

schema 标签用于定义MyCat实例中的逻辑库

Table 标签定义了MyCat中的逻辑表

dataNode 标签定义了MyCat中的数据节点,也就是我们通常说所的数据分片。

dataHost标签在mycat逻辑库中也是作为最底层的标签存在,直接定义了具体的数据库实例、读写分离配置和心跳语句。

 

注意:若是LINUX版本的MYSQL,则需要设置为Mysql大小写不敏感,否则可能会发生表找不到的问题。

在MySQL的配置文件中/etc/my.cnf [mysqld] 中增加一行

  lower_case_table_names=1

 

1.1.2Schema.xml配置

<!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schema xmlns:mycat="http://org.opencloudb/">         <!--             schema name:逻辑数据库名             table name:逻辑表名             dataNode:数据节点(对应真实数据库)             dataHost:Mysql服务器             rule:切片规则-->        <schema name="e3mall" checkSQLschema="false" sqlMaxLimit="100">                <!-- auto sharding by id (long) -->                <table name="tb_item" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />        </schema>        <dataNode name="dn1" dataHost="localhost1" database="db1" />        <dataNode name="dn2" dataHost="localhost2" database="db2" />        <dataNode name="dn3" dataHost="localhost1" database="db3" />        <dataHost name="localhost1" 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="192.168.25.134:3306" user="root"                        password="root">                        <!-- can have multi read hosts -->                </writeHost>        </dataHost>        <dataHost name="localhost2" 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="192.168.25.166:3306" user="root"                        password="root">                        <!-- can have multi read hosts -->                </writeHost>        </dataHost></mycat:schema>


2.1   配置server.xml

1.1.1Server.xml介绍

server.xml几乎保存了所有mycat需要的系统配置信息。最常用的是在此配置用户名、密码及权限。

 

1.1.2Server.xml配置

<user name="test">    <property name="password">test</property>    <property name="schemas">e3mall</property>    <property name="readOnly">false</property></user>

3.1   配置rule.xml

rule.xml里面就定义了我们对表进行拆分所涉及到的规则定义。我们可以灵活的对表使用不同的分片算法,或者对表使用相同的算法但具体的参数不同。这个文件里面主要有tableRule和function这两个标签。在具体使用过程中可以按照需求添加tableRule

和function。

此配置文件可以不用修改,使用默认即可。