mycat实现读写分离 ubuntu 16.04

版权声明:转载请注明出处,谢谢 https://blog.csdn.net/guoqing2016/article/details/88732592

前言

写入
读取
写入
同步
读取
同步
读取
同步
读取
客户端
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目录
安装jdk
修改配置文件

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 

修改jdk配置
环境配置生效

root@ubuntu: source /etc/profile

使用 java -version 查看是否生效
环境生效
这里遇到了没有权限的问题,因为我们的文件是直接复制上去的,需要去修改权限
jdk
右键选择属性菜单
修改权限
将权限改为0777的最高权限,并且勾选循环设定组、拥有者和权限的选项,确定提交
提交后再试一下 java -version
查看是否生效
jdk成功

安装mycat

可以去:https://download.csdn.net/download/guoqing2016/11048805 地址下载mycat,或在网上找mycat服务器的linux版本
下载解压并上传到/usr/local目录下
mycat目录
同jdk安装时一样需要将权限开启
开启权限
配置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

修改jdk指向

配置mycat

修改 server.xml

root@ubuntu:/usr/local/mycat/conf# vi server.xml

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

修改 schema.xml

root@ubuntu:/usr/local/mycat/conf# vi schema.xml

schema配置

说明:

<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

将报错日志开启,好看报错信息
开启debug
启动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

root@ubuntu: mysql -u root -h 127.0.0.1 -P 8066 -p  //回车后输入密码

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

mysql> show databases;
mysql> use test_schema;

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

mysql> show tables;

tables

mysql> CREATE TABLE test (number INT(11),name VARCHAR(255));

创建后我们分别主从服务器上查询test_schema数据库内的表是否也有创建
主服务器tabales
在mycat上插入一条数据,并查看主从服务器上是否也有
mycat插入数据
主服务器查询数据
看上去是没错了,如果不确定是否进行了读写分离可以查看mycat日志
mycat日志位置在mycat/logs/mycat.log
创建的指令是运行在了192.168.235.136也就是我们的主服务器上
mycat
查询列表的指令运行在192.168.235.133也就是我们的从服务器上
mycat
到这里就算是完成mycat读写分离的配置了,如果遇到其他问题请在下方留言,博主每天都会查看评论信息的 0_0

猜你喜欢

转载自blog.csdn.net/guoqing2016/article/details/88732592
今日推荐