目录
1、首先,准备4个mysql数据库,并做好双主双从
2、部署环境
MyCAT 是使用 JAVA 语言进行编写开发,使用前需要先安装 JAVA 运行环境(JRE),由于 MyCAT 中使用了 JDK7 中的一些特性,所以要求必须在 JDK7 以上的版本上运行
2.1 下载JDK
官网下载地址:
Java Archive Downloads - Java SE 8u211 and later
2.2 解压文件
tar -xf jdk-8u181-linux-x64.tar.gz -C /usr/local/
mv /usr/local/xxx /usr/local/java
2.3 配置环境变量
vim /etc/profile
在文件最后添加下面的内容:
export PATH=/usr/local/java/bin:$PATH
2.4 使环境变量生效
source /etc/profile
2.5 查看java版本
java -version
出现下面内容java就部署完成了
3、部署mycat
3.1 部署mycat
下载
wget http://dl.mycat.org.cn/1.6.5/Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
解压
tar xf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz -C /usr/local/
3.2 配置mycat
在/etc/hosts文件中添加本地域名解析
vim /etc/hosts
将下面的解析内容添加到文件中:
192.168.8.129 master1
192.168.8.131 master2
192.168.8.130 slave1
192.168.8.128 slave2
修改配置文件/usr/local/mycat/conf/server.xml
修改配置文件/usr/local/mycat/conf/schema.xml
balance 属性
负载均衡类型,目前的取值有 3 种:
1. balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的 writeHost 上。
2. balance="1", 全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且 M1 与 M2
互为主备),正常情况下,M2,S1,S2 都参与 select 语句的负载均衡。
4. balance="2", 所有读操作都随机的在 writeHost、readhost 上分发。
5. balance="3", 所有读请求随机的分发到 writerHost 对应的 readhost 执行,writerHost 不负担读压力,注意 balance=3 只在 1.4 及其以后版本有,1.3 没有。
writeType 属性
负载均衡类型
1. writeType="0", 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个writeHost,重新启动后已切换后的为准.
2. writeType="1",所有写操作都随机的发送到配置的 writeHost,1.5 以后废弃不推荐。
3.3 启动mycat
/usr/local/mycat/bin/mycat start
mycat启动命令支持以下参数:
start | restart | stop | status
3.4 在真实的master数据库上给用户授权
登录数据库环境后执行以下命令:
grant all on db1.* to mycat@'%' identified by 'Linyunxi@123';
flush privileges;
3.5 测试
在 mycat 的机器上测试用户权限有效性。
测试是否能正常登录上 主服务器:
mysql -uroot -p'Linyunxi@123' -h192.168.8.129
继续测试是否能登录上从服务器:
mysql -uroot -p'Linyunxi123' -h192.168.8.130
通过客户端进行测试是否能登录到 mycat 上
192.168.62.151 是 mycat 的主机地址,注意端口号是 8066
mysql -uroot -p123456 -h192.168.8.132 -P 8066
mycat登录成功,部署完成
附:
mycat和数据库关系如下图:
mycat中的映射关系如下图: