目录
-
- 前言
- 需求
- 安装
-
- 安装jdk
- 安装mycat
- 配置mycat
前言
mycat配置实现读写分离,就相当于添加了一个中间件,统一接收客户端发来的读取和写入的请求,将请求分发到主从服务器上
主服务器负责处理写入的数据以及将写入的数据同步到从服务器上
从服务器只负责读取的请求
需求
主服务器(master) 192.168.235.136
从服务器(slave) 192.168.235.133
mycat服务器 192.168.235.137
需要配置好主从同步,如果未配置的可以到这里配置:
https://blog.csdn.net/guoqing2016/article/details/88425633
如果mycat服务器没有配置ssh的可以到这里配置:
https://blog.csdn.net/guoqing2016/article/details/88798913
安装
安装jdk
到java官网下载 jdk-8u201-linux-x64.tar.gz解压上传到/usr/local目录

修改配置文件
root@ubuntu: vi /etc/profile
在尾部添加:
export JAVA_HOME=/usr/local/jdk1.8.0_201
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
环境配置生效
root@ubuntu: source /etc/profile
使用 java -version 查看是否生效
这里遇到了没有权限的问题,因为我们的文件是直接复制上去的,需要去修改权限
右键选择属性菜单
将权限改为0777的最高权限,并且勾选循环设定组、拥有者和权限的选项,确定提交
提交后再试一下 java -version
jdk成功
安装mycat
可以去:https://download.csdn.net/download/guoqing2016/11048805 地址下载mycat,或在网上找mycat服务器的linux版本
下载解压并上传到/usr/local目录下
同jdk安装时一样需要将权限开启
配置mycat环境变量
root@ubuntu: vi /etc/profile
在尾部添加:
export MYCAT_HOME=/usr/local/mycat/
环境配置生效
root@ubuntu: source /etc/profile
修改jdk路径指向
root@ubuntu: cd /usr/local/mycat/conf
root@ubuntu:/usr/local/mycat/conf# vi wrapper.conf
配置mycat
修改 server.xml
root@ubuntu:/usr/local/mycat/conf# vi server.xml
server.xml内不需要修改特别多的东西,只有两个最下面的用户要改,root就是默认用户,配置好自己的用户名和密码即可,schemas这里是逻辑库的名字,接下来schema.xml配置要填写对应的名称
修改 schema.xml
root@ubuntu:/usr/local/mycat/conf# vi schema.xml
说明:
<dataNode> 对应数据库中需要进行读写分离的数据库
<dataHost> 定义具体的数据库信息以及一些读写分离的配置
着重讲一下<dataHost>中的balance属性:
balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。
balance="1",全部的readHost与stand by writeHost 参与select语句负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且M1与M2互为主备),正常情冴下,M2,S1,S2 都参与select语句的负载
均衡。(类似于balance=3,读操作只分发到除了真正的主节点之外的所有节点)
balance="2",所有读操作都随机的在 writeHost、 readhost 上分发。(常用些,在所有主从节点上分发读请求)
balance="3",所有读请求随机的分发到 writeHost 对应的readhost执行,writeHost不负担读压
力,注意 balance=3 叧在 1.4 及其以后版本有,1.3 没有
<writeHost> 主服务器的地址及账号密码
<readHost> 从服务器的地址及账号密码
修改 log4j2.xml
root@ubuntu:/usr/local/mycat/conf# vi log4j2.xml
将报错日志开启,好看报错信息
启动mycat
root@ubuntu:/usr/local/mycat/conf# cd ..
root@ubuntu:/usr/local/mycat# cd bin
root@ubuntu:/usr/local/mycat/bin# ./mycat start
登录mycat
查询数据库列表 并连接test_schema表(需要在主服务器上创建好test_schema的数据库,通过主从同步同步到从服务器上)
mysql> show databases;
mysql> use test_schema;
查询数据库内的表,现在还没有表数据表,我们来创建一个
创建后我们分别主从服务器上查询test_schema数据库内的表是否也有创建
在mycat上插入一条数据,并查看主从服务器上是否也有
看上去是没错了,如果不确定是否进行了读写分离可以查看mycat日志
mycat日志位置在mycat/logs/mycat.log
创建的指令是运行在了192.168.235.136也就是我们的主服务器上
查询列表的指令运行在192.168.235.133也就是我们的从服务器上
到这里就算是完成mycat读写分离的配置了,如果遇到其他问题请在下方留言,博主每天都会查看评论信息的 0_0