mycat-解决MySQL数据量大,查询压力大的问题,对外使用mycat的地址登录
使用逻辑库和逻辑表对应mycat后端的真实数据库。支持读写分离 M-S-S M-M-S-S
负载均衡 读或者写平均分给后端的服务器 数据的分片与聚合
1,配置Java环境
tar xf jdk-8u91-linux-x64.tar.gz -C /usr/local/ 解压Java开发工具包
ln -s /usr/local/jdk1.8.0_91/ /usr/local/javavim /etc/profile
“JAVA_HOME=/usr/local/java 设置Java变量
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH”
source /etc/profile
Java -version 查询到版本,安装成功
2,下载mycat
wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
tar xf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/
3,配置mycat前端
创建一个账号,数据库和后端对应即可
vim /usr/local/mycat/conf/server.xml
<user name="root">
<property name="password">123456</property>
<property name="schemas">lunch</property>
4,配置mycat后端
1,是两台普通的数据库,做MySQL的分库分表。
2,是两台主从数据库,做MySQL的读写分离。
(分库分表,数据库可以不一致,但是表名一定要三个保持一致)
vim /usr/local/mycat/conf/schema.xml
5,配置rule
做个分库分表的规则
vim /usr/local/mycat/conf/rule.xml
6,关于属性的介绍
balance 类型:
1,balance=“1”,开启读写分离,所有读操作都随机的发送到readHost。
2. balance=“0”, 关闭读写分离功能。所有读操作都发送到当前可用的writeHost上。
writeType 属性:1.备份型 writeType="0", 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个writeHost。
2. 负载型 writeType="1",所有写操作都随机的发送到配置的 writeHost。
switchType 模式:switchType指的是切换的模式:1. switchType='-1' 负1表示不自动切换
2. switchType='1' 默认值,表示根据延时自动切换
3. switchType='2' 根据MySQL主从同步的状态决定是否切换,心跳语句为 show slave status
7,配置mysql群
准备mycat连接的用户及权限,例如:grant all on *.* to 'mycattest'@'192.168.123.123' identified by '123456';
8,启动mycat
/usr/local/mycat/bin/mycat start
Starting Mycat-server...启动成功,否则就是配置Mycat后端语法错误。
ps aux | grep mycat 检测进程是否启动
yum install -y mariadb 安装客户端
mysql -h mycat的IP -uroot -p123456 -P8066
9,Mycat使用后方数据库
也可以使用navicat测试
关于mycat的使用读写分离,分库分表测试没有问题