下载MyCat,并解压安装,过程忽略。这里使用的版本为1.6.6.1 -linux版本
wget http://dl.mycat.io/1.6.6.1/Mycat-server-1.6.6.1-release-20181031195535-linux.tar.gz
前提:
- jdk>1.7
- mysql 环境(建议5.6以上)
启动:
首先要启动mysql:
service mysqld start
在启动mycat,命令如下:
./(yourinstallpath)/bin/mycat start //开启命令
./(yourinstallpath)/bin/mycat stop //结束命令
进入mycat命令行的命令:
mysql -uroot -p123456 -h127.0.0.1 -P8066 -DTESTDB
注意:其中8066是mycat的监听端口,类似于mysql的3306端口,其中-u,-p,-h分别是用户名,密码和主机,-D是连接的逻辑库。这些都定义在~/conf/server.xml 里面,稍后详解。有时候你可能用这个命令进不去mycat,先查看mycat是否启动成功(pa -ef|grep mycat),还有就是开启mycat白名单firewall-whitehost,允许127*地址段访问。
mycat默认有一个TESTDB数据库,其中有一张表travelrecord使用了auto-sharding-long(根据id范围进行分裤分表),
首先在mysql中创建三个数据库表db1,db2,db3,然后分别创建travelrecord表。
create table travelrecord (id bigint not null primary key,user_id varchar(100),traveldate DATE, fee decimal,days int);
回到mycat中,使用explain关键字,就一目了然了。
explain create table travelrecord (id bigint not null primary key,user_id varchar(100),traveldate DATE, fee decimal,days int);
显示如下:分别向三个数据库插入了数据。是不是一目了然啊
至此,mycat的使用就到此结束了,更多分裤分表规则等待你的发现。
但是。
conf目录下以下三个需要熟悉。
server.xml是Mycat服务器参数调整和用户授权的配置文件
schema.xml是逻辑库定义和表以及分片定义的配置文件
rule.xml是分片规则的配置文件
以之前的travelrecord表的auto-sharding-long规则为例讲解:
schema.xml
很明显 使用了 auto-sharding-long,数据库节点为dn1,dn2,dn3.
auto-sharding-long的定义在文件中:rule.xml
过滤字段为id,过滤方法为rang-long,
最终定义的txt文件为autopartition-long.txt,
在conf下找到 :
番外篇:
mycat官网提供了mycat监视
官网README文件已经很详细了,不做介绍了:https://github.com/MyCATApache/Mycat-mini-monitor
注意:
你可能先要把 ips修改为自己的内网地址(ifconfig)
也不知道是不是我自己的问题,我外网怎么都访问不了,直到我在内网使用
curl -get http://127.0.0.1:8080/view/jmx_metrics
之后,外网才访问通。