官方下载地址:http://dl.mycat.io/mysql
环境:mysql 5.6 mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz lunix centos 7.0 ip: 192.168.1.12 :3306linux
mycat 1.6 Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz lunix centos 7.0 ip:192.168.1.3 :8066sql
jdk 1.8.0_73数据库
2.解压mycatcentos
一样使用rz工具将它上传到/software文件夹下 并解压到/user/local路径下(解压后的文件名就叫作mycat)工具
进入到/usr/local/mycat/bin/url
它下面的mycat是启动文件unix
./mycat start 启动rest
./mycat stop 中止code
./mycat restart 重启
./mycat status 查看mycat的启动状态
这样mycat就安装好了
前面也提到了,mycat安装在了192.168.1.3这台机器上,而且前提装好了jdk。
先用navicat 连接192.168.1.12装了个单机版的mysql。在这个上面,建立3个数据库db1/db2/db3,这几个库中都建一张item(商品表)
建表语句很简单
CREATE TABLE `item` ( `id` int(11) NOT NULL COMMENT '主键id', `name` varchar(20) DEFAULT NULL COMMENT '名称', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在安装目录的/usr/local/mycat/conf文件夹下,是mycat的各类配置文件存储的地方。
而简单的分库分表操做,须要修改这三个配置文件
schema.xml
server.xml
rule.xml
schema.xml配置
<?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://io.mycat/"> <schema name="TESTDB" checkSQLschema="false" 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" /> <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.1.12:3306" user="root" password="root"> </writeHost> </dataHost> </mycat:schema>
server.xml
注意用户名链接的schema的TESTDB要和schema.xml和保持一致
而链接的默认端口是8066 ,用navicat 连接
经过navicat 给mycat 插入数据
INSERT INTO item(id, NAME) VALUES(1, 'a'); INSERT INTO item(id, NAME) VALUES(2, 'b'); INSERT INTO item(id, NAME) VALUES(3, 'c'); INSERT INTO item(id, NAME) VALUES(4, 'd'); INSERT INTO item(id, NAME) VALUES(5, 'f'); INSERT INTO item(id, NAME) VALUES(6, 'g');
SELECT * FROM item;
插入了6条数据,能够看到查询出来的不是按照顺序的。
而看192.168.1.12的db1/db2/db3的库
db1:
db2:
db3:
虽然分库了,但能够经过排序将不一样库中的数据在查询后,在mycat中排序