需求
把一张表分片存储到三个数据库中
环境
- Mysql节点环境
- 操作系统版本 : Centos7
- 数据库版本 : Mysql-5.6
- 数据库名 : db1、db2、db3
- ip:192.168.188.99
- MyCat节点
- mycat版本 :1.6 release
- ip:192.168.188.100
安装MyCat到节点上
MyCat需要有JDK环境的支持所以在运行Mycat之前需要安装JDK.
MyCat官方网站下载1.6版本的Mycat到节点上,
配置Mycat
配置schema.xml
Schema.xml介绍
Schema.xml作为MyCat中重要的配置文件之一,管理着MyCat的**逻辑库、表、**分片规则、DataNode以及DataSource。
- schema 标签用于定义MyCat实例中的逻辑库
- Table 标签定义了MyCat中的逻辑表
- dataNode 标签定义了MyCat中的数据节点,也就是我们通常说所的数据分片。
- dataHost标签在mycat逻辑库中也是作为最底层的标签存在,直接定义了具体的数据库实例、读写分离配置和心跳语句。
Schema.xml文件位置
mycat1.6/mycat/conf
我的Schema.xml文件详细信息
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100">
<!-- auto sharding by id (long) -->
<table name="item" dataNode="dn1,dn2,dn3" rule="mod-long" />
</schema>
<!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743"
/> -->
<dataNode name="dn1" dataHost="localhost1" database="db1" />
<dataNode name="dn2" dataHost="localhost1" database="db2" />
<dataNode name="dn3" dataHost="localhost1" database="db3" />
<!--<dataNode name="dn4" dataHost="sequoiadb1" database="SAMPLE" />
<dataNode name="jdbc_dn1" dataHost="jdbchost" database="db1" />
<dataNode name="jdbc_dn2" dataHost="jdbchost" database="db2" />
<dataNode name="jdbc_dn3" dataHost="jdbchost" 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>
<!--这里配置的是我们Mysql服务器信息,ip端口号,账号,密码-->
<writeHost host="hostM1" url="192.168.188.99:3306" user="root"
password="xiao123." />
<!-- <writeHost host="hostM2" url="localhost:3316" user=&#