Linux 使用Mycat实现Mysql读写分离

一、什么是读写分离

    Mysql实现主从复制后,同时也需要实现读写分离,读写分离的处理就是主库处理事务性增、删、改操作,而从库仅用于数据查询读取。实现读写分离需要借助其他中间件,下面就介绍Mycat中间件实现读写分离

   

二、Mycat的安装

 1、安装java环境包

yum install java-1.8.0-openjdk.x86_64

2、下载mycat

wget http://dl.mycat.org.cn/1.6.7.6/20211221142218/Mycat-server-1.6.7.6-release-20211221142218-linux.tar.gz

3、解压mycat包

tar -zxvf Mycat-server-1.6.7.6-release-20211221142218-linux.tar.gz

4、mycat安装授权处理

//剪切到/usr/local下
mv mycat /usr/local/
//创建专门运行mycat账号
adduser mycat
// 切换到mycat文件夹路径下
cd /usr/local
//将文件权限赋给mycat账号
chown mycat:mycat -R mycat

5、进入profile配置环境变量并添加

//进入文件
vim /etc/profile
//配置环境变量
export JAVA_HOME=/usr 
export MYCAT_HOME=/usr/local/mycat
//刷新环境变量文件
source /etc/profile
//切换mycat用户
su mycat
//切换目录
cd /usr/local/mycat/bin/

6、启动mycat

//启动mycat
./mycat start
//查看状态
./mycat status
//查看启动输出
/usr/local/mycat/bin/mycat console(查看mycar输出日志)

7、切换到mycat根目录,查看目录文件

//切换到mycat根目录
cd /usr/local/mycat
//查看目录文件
ll

三、Mycat读写分离配置

1、进到conf文件夹里面查看配置文件

cd conf

2、vim进入schema.xml进行编辑配置

vim /usr/local/mycat/conf/schema.xml

分片配置:Schema里面包含table配置,指定需要的数据库表名,配置dataNode后,randomDataNode="dn1"可要可不要

非分片配置:Schema不指定table,schema必须指定配置dataNode ,否则会提示找不到节点,配置dataNode后,randomDataNode="dn1"可要可不要

  schema文件配置说明:

balance指的负载均衡类型,目前的取值有4种:
1. balance=”0”, 不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。
2. balance=”1”,全部的readHost与stand bywriteHost参与select语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且M1与 M2互为主备),正常情况下,M2,S1,S2都参与select语句的负载均衡。
3. balance=”2”,所有读操作都随机的在writeHost、readhost上分发。
4. balance=”3”,所有读请求随机的分发到wiriterHost对应的readhost执行,writerHost不负担读压力
注意:balance=3只在1.4及其以后版本有,1.3没有。
————————————————
writeType属性:
1.writeType=”0”,所有写操作发送到配置的第一个writeHost,第一个挂了切到还生存的第二个writeHost,重新启动后以切换后的为准,切换记录在配置文件中:dnindex.properties.
2.writeType=”1”,所有写操作都随机地发送到配置的writeHost,1.5以后废弃不推荐。
————————————————
switchType指的是切换的模式,目前的取值也有4种:
1. switchType=’-1’ 表示不自动切换
2. switchType=’1’ 默认值,表示自动切换
3. switchType=’2’ 基于MySQL主从同步的状态决定是否切换,心跳语句为 show slave status
4. switchType=’3’基于MySQLgalary cluster的切换机制(适合集群)(1.4.1),心跳语句为 show status like ‘wsrep%’。
————————————————

3、配置server.xml

vim /usr/local/mycat/conf/server.xml

4、配置完成,重启mycat服务

//切换路径
cd /usr/local/mycat/bin
//重启
./mycat restart

5、进入mycat数据库

mysql -uroot -h ip -P3310 -p --default_auth=mysql_native_password

 6、切换数据库

//进入逻辑库
use SLAVEDEMO;
//查看逻辑库table
show tables;
//切换至mycat日志目录
cd /usr/local/mycat/logs/
//实时查看mycat日志
tail -f mycat.log

 

 

7、使用navicat链接mycat逻辑库

 

 8、mycat数据库测试

到此为止,mycat配置mysql读写分离完成。

配置完成后,我们项目里面的链接是直接使用mycat链接,不论是建表还是操作都可以使用mycat链接,执行顺序为mycat逻辑数据库->同步到主库->同步到从库。也可以直接在主库建表,都会同步到mycat逻辑库里面。

参考文献:https://blog.csdn.net/qq_35992900/article/details/80673889

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章