天天看点

mycat 简单实现读写分离的方法和步骤

目录

    • 前言
    • 需求
    • 安装
      • 安装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目录

mycat 简单实现读写分离的方法和步骤

修改配置文件

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 
           
mycat 简单实现读写分离的方法和步骤

环境配置生效

root@ubuntu: source /etc/profile
           

使用 java -version 查看是否生效

mycat 简单实现读写分离的方法和步骤

这里遇到了没有权限的问题,因为我们的文件是直接复制上去的,需要去修改权限

mycat 简单实现读写分离的方法和步骤

右键选择属性菜单

mycat 简单实现读写分离的方法和步骤

将权限改为0777的最高权限,并且勾选循环设定组、拥有者和权限的选项,确定提交

提交后再试一下 java -version

mycat 简单实现读写分离的方法和步骤

jdk成功

安装mycat

可以去:https://download.csdn.net/download/guoqing2016/11048805 地址下载mycat,或在网上找mycat服务器的linux版本

下载解压并上传到/usr/local目录下

mycat 简单实现读写分离的方法和步骤

同jdk安装时一样需要将权限开启

mycat 简单实现读写分离的方法和步骤

配置mycat环境变量

root@ubuntu: vi /etc/profile
           

在尾部添加:

export MYCAT_HOME=/usr/local/mycat/
           
mycat 简单实现读写分离的方法和步骤

环境配置生效

root@ubuntu: source /etc/profile
           

修改jdk路径指向

root@ubuntu: cd /usr/local/mycat/conf
root@ubuntu:/usr/local/mycat/conf# vi wrapper.conf
           
mycat 简单实现读写分离的方法和步骤

配置mycat

修改 server.xml

root@ubuntu:/usr/local/mycat/conf# vi server.xml
           
mycat 简单实现读写分离的方法和步骤

server.xml内不需要修改特别多的东西,只有两个最下面的用户要改,root就是默认用户,配置好自己的用户名和密码即可,schemas这里是逻辑库的名字,接下来schema.xml配置要填写对应的名称

修改 schema.xml

root@ubuntu:/usr/local/mycat/conf# vi schema.xml
           
mycat 简单实现读写分离的方法和步骤

说明:

<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 简单实现读写分离的方法和步骤

启动mycat

root@ubuntu:/usr/local/mycat/conf# cd ..
root@ubuntu:/usr/local/mycat# cd bin
root@ubuntu:/usr/local/mycat/bin# ./mycat start
           
mycat 简单实现读写分离的方法和步骤

登录mycat

mycat 简单实现读写分离的方法和步骤

查询数据库列表 并连接test_schema表(需要在主服务器上创建好test_schema的数据库,通过主从同步同步到从服务器上)

mysql> show databases;
mysql> use test_schema;
           
mycat 简单实现读写分离的方法和步骤

查询数据库内的表,现在还没有表数据表,我们来创建一个

mycat 简单实现读写分离的方法和步骤

创建后我们分别主从服务器上查询test_schema数据库内的表是否也有创建

mycat 简单实现读写分离的方法和步骤

在mycat上插入一条数据,并查看主从服务器上是否也有

mycat 简单实现读写分离的方法和步骤
mycat 简单实现读写分离的方法和步骤

看上去是没错了,如果不确定是否进行了读写分离可以查看mycat日志

mycat日志位置在mycat/logs/mycat.log

创建的指令是运行在了192.168.235.136也就是我们的主服务器上

mycat 简单实现读写分离的方法和步骤

查询列表的指令运行在192.168.235.133也就是我们的从服务器上

mycat 简单实现读写分离的方法和步骤

到这里就算是完成mycat读写分离的配置了,如果遇到其他问题请在下方留言,博主每天都会查看评论信息的 0_0

继续阅读