mycat是一款开源的数据库中间件,前身是阿里的Cobar,Cobar在开源一段时间后处于没人维护状态,mycat应运而生扛起了Cobar的大旗,对于开发人员来说,使用mycat就像使用mysql一样方便自如,无需关心后台有几台数据库。对于DBA来说,使用mycat可以很轻松的实现数据库分库分表、主从分离、数据库集群等操作。
作者使用mycat完成两台mysql分片即两台数据库做集群,通过访问mycat路由实现数据自动分片(根据id分配分配到不同的mysql服务器)
操作系统:centos 7
数据库:mysql 5.6.35
mycat:1.5.1
jdk:1.7
编号 |
ip |
作用 |
机器1 |
192.168.137.110 |
mycat路由 |
机器2 |
192.168.137.2 |
mysql |
机器3 |
192.168.137.3 |
mysql |
1、机器1中安装jdk。
(1)下载jdk-7u65-linux-x64.gz。
(2)解压jdk
tar zxvf jdk-7u65-linux-x64.gz
(3)修改/etc/profile文件,配置环境变量
(4)执行source/etc/profile,使/etc/profile生效。
2、机器1中安装mycat。
(1)下载mycat,下载地址https://raw.githubusercontent.com/MyCATApache/Mycat-download/master/1.5-RELEASE/Mycat-server-1.5.1-RELEASE-20161130213509-linux.tar.gz。
(2)解压mycat
tar zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
3、机器2、机器3安装并启动Mysql,安装后需要增加机器1访问数据库的权限,方法:
在机器2、机器3中的连接本机mysql数据库,执行如下命令
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIEDBY '123456';
FLUSH PRIVILEGES;
4、在机器2、机器3中分别创建db1数据库,执行如下命令:
CREATE DATABASE db1;
5、修改机器1中的mycat配置文件。
(1)修改mycat/conf/schema.xml,修改后的内容如下:
(2)修改mycat/conf/autopartition-long.txt,修改后的内容如下(由于我的测试环境使用了两台数据库,所以需要在autopartition-long.txt删掉一个节点配置)
6、启动mycat
./mycat/bin/mycatstart。
启动后可以在mycat/log/mycat.log中查看到如下信息,代表配置并启动成功
7、使用mysql客户端工具(如sqlyog)连接mycat。
注意:mycat默认端口8066,非3066,用户名密码在mycat/config/server.xml文件中查看:
8、在sqlyog中执行。
CREATETABLE travelrecord (id BIGINT NOT NULL PRIMARY KEY,user_idVARCHAR(100),traveldate DATE, fee DECIMAL,days INT);
INSERTINTO travelrecord(id,user_id,traveldate,fee,days) VALUES(1,'Victor',20160101,100,10);
INSERTINTO travelrecord(id,user_id,traveldate,fee,days) VALUES(5000001,'Job',20160102,100,10);
9、在机器2中登陆本机mysql,执行
select * from travelrecord;
在机器2中登陆本机mysql,执行
select * from travelrecord;
根据上图结果可以看到,两条记录各写到对应的库中。