MyCat安装步骤说明
一、MyCat的安装
1、首先需配置java运行环境(略)
2、下载mycat安装包,或者直接进行下载,网址http://dl.mycat.io/
wget http://dl.mycat.io/1.6.5/Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
3、解压至home/soft/mycat/文件夹下
tar -zxvf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
4、配置环境变量
vim /etc/profile
并添加
export MYCAT_HOME=/home/soft/mycat/mycat
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$MYCAT_HOME/bin:$PATH
按Esc,输入:wq保存退出
刷新环境变量—执行:source /etc/profile
5、启动MyCat
MyCat相关操作命令:
mycat start/stop/restart
二、MyCat配置相关
1、MyCat根目录结构
2、MyCat的主要配置文件
schema.xml中定义逻辑库,表、分片节点等内容;
rule.xml中定义分片规则;
server.xml中定义用户以及系统相关变量,如端口等
3、server.xml内容概述
server.xml是MyCAT对外的“虚拟数据库”配置文件。所谓的“虚拟数据库”是说,MyCAT将多个Mysql集群整合起来对外提供服务,提供服务的接口仍然采用Mysql的形式,因此,通过仿造Mysql接口,让调用程序以为自己是在访问Mysql数据库,就是所谓的“虚拟数据库”。
表明该虚拟数据库有一个schema,TESTDB;
有2个用户test和user,密码分别是test和user,
user用户是只读的,test用户未设置只读;
默认的SQL解析器是druidparser
4、schema.xml内容概述
Schema中主要配置 Mycat 数据库,MySQL表,分片规则,分片类型
第1块是schema块,主要描述了虚拟数据库的schema TESTDB中有哪些表,每个表分布在哪些数据节点上,分布的方法采用哪种算法。
例如<table name="travelrecord"
dataNode="dn1,dn2,dn3"rule="auto-sharding-long"/>,表示travelrecord表分布在dn1,dn2,dn3这3个节点上,分布的方法采用auto-sharding-long算法。
第2块是dataNode,表示该数据库有哪些数据节点,以及这些数据节点实际对应的数据服务器和数据库名,这里配置了3个节点dn1,dn2,dn3,都是在localhost1服务器上,数据库名分别是db1,db2,db3,其实,这也正是前面schema块中用到的。
第3块是dataHost,这部分是实际的数据库服务器配置,这里配置了2个Mysql数据库,hostM1和hostS1,地址分别在“localhost:3306”,用户名都是root,密码是123456,并且指定了心跳是select user()。
需注意:
balance和 switchType两个参数:
balance指的负载均衡类型,目前的取值有4种:
balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。
balance="1",全部的readHost与stand by writeHost参与select语句的负载均衡,
简单的说,当双主双从模式(M1->S1,M2->S2,并且M1与 M2互为主备),正常情况下,M2,S1,S2都参与select语句的负载均衡。
balance="2",所有读操作都随机的在writeHost、readhost上分发。
balance="3",所有读请求随机的分发到wiriterHost对应的readhost执行,writerHost不负担读压力
switchType指的是切换的模式,目前的取值也有4种:
switchType='-1' 表示不自动切换
switchType='1' 默认值,表示自动切换
switchType='2' 基于MySQL主从同步的状态决定是否切换,心跳语句为 show slave status
switchType='3'基于MySQL galary cluster的切换机制(适合集群)(1.4.1),心跳语句为 show status like 'wsrep%'。
5、rule.xml内容概述
sharding-by-hour 对应的切分方式(function )是按日期切分。
tableRule中name 为schema.xml 中table 标签中对应的rule。
columns 是表的切分字段: createTime 创建日期。
algorithm 是规则对应的切分规则:映射到function 的name
function 配置是分片规则的配置。
name 为切分规则的名称,但是需要与tableRule 中匹配。
class 是切分规则对应的切分类,需要哪种规则则配置哪种,
例如本例子是按小时分片:org.opencloudb.route.function.LatestMonthPartion
property 标签是切分规则对应的不同属性,不同的切分规则配置不同。
三、安装中遇到的问题
1、MyCat 默认数据端口是8066
登陆如下:mysql -h127.0.0.1 -utest -ptest –P8066 [-dmycat]
2、在配置好数据库后连接远程通过Navicat for MySQL连接MyCat提示:
“1184-Unknown charsetIndex:255”
处理方式:
找到配置文件夹下:index_to_charset.properties 文件,在文件末尾加上“255=utf8mb4”即可。