Mariadb 基于Mycat实现读写分离
环境:Mariadb主:192.168.200.129
Mariadb从:192.168.200.114
Mycat :192.168.200.112
(1) 安装jdk,先查看本机是否有jdk,由于Mycat是基于Java语言来编写的,所以需要安装JDK,版本为1.8即可。没有的话安装一下然后配置环境变量
[root@ns2 ~]# ls
jdk-8u191-linux-x64.tar.gz
[root@ns2 ~]# tar xf jdk-8u191-linux-x64.tar.gz //解压
[root@ns2 ~]# mv jdk1.8.0_191 /usr/local/java //我把它移动到了/usr/local下起名叫java
[root@ns2 ~]# vim /etc/profile //配置环境变量

[root@ns2 ~]# source /etc/profile //声明一下
[root@ns2 ~]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
(2)安装部署mycat
下载Mycat安装包,下载地址为http://dl.mycat.io/,选择linux环境的版本即可。
将Mycat安装包上传服务器后解压,解压后我把文件移动到了/usr/local下


现在已经将mycat部署好了,接下来修改mycat的配置文件。
(3)配置Mycat步骤
01、在主库和从库中分别创建用于Mycat连接的账号:
提供一个数据库内所有表的权限及创建的用户名和指定的主机与创建的用户密码:

02、配置Mycat的schema.xml文件,该文件位于Mycat中conf文件夹下:
schema 标签用于定义MyCat 实例中的逻辑库,MyCat 可以有多个逻辑库,每个逻辑库都有自己的相关配置。可以使用schema 标签来划分这些不同的逻辑库。
dataNode 标签定义了MyCat 中的数据节点,也就是我们通常说所的数据分片。一个dataNode 标签就是一个独立的数据分片。
dataHost标签直接定义了具体的数据库实例、读写分离配置和心跳语句。
balance属性
负载均衡类型,目前的取值有3 种:
balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的writeHost 上。
balance="1",全部的readHost 与stand by writeHost 参与select 语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且M1 与M2 互为主备),正常情况下,M2,S1,S2 都参与select 语句的负载均衡。
balance="2",所有读操作都随机的在writeHost、readhost 上分发。
balance="3",所有读请求随机的分发到wiriterHost 对应的readhost 执行,writerHost 不负担读压
力,注意balance=3 只在1.4 及其以后版本有,1.3 没有。
writeType 属性
writeType="0", 所有写操作发送到配置的第一个writeHost,第一个挂了后切换到还生存的第二个
writeHost,重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties .
writeType="1",所有写操作都随机的发送到配置的writeHost

指定数据库名称,指定负载均衡类型,指定主从服务器和工作端口及其创建的用户和密码
03、配置server.xml,即主要配置连接Mycat的用户账号信息:
账号配置

第一个user标签 :指定之前数据库创建的用户和密码和指定数据库名称
第二个user标签 :指定创建的用户和密码,连接测试使用。
然后启动服务
[root@ns2 mycat]# bin/mycat start

连接测试:
查看命令:show @@datasource; //在管理端上查看。
测试:
mycat用户端:默认8066,可手动更改。用户是server.xml配置文件中配置的用户。

mycat管理端:默认9066,可手动更改,用户是server.xml配置文件中配置的用户。
查看:

当调用读接口时READ_LOAD的值对应在slave上会加1说明是走从库;
当调用写接口时WRITE_LOAD的值对就在master上会加1说明是走主库
Mariadb 基于Mycat实现读写分离的更多相关文章
- 基于Mycat实现读写分离
随着应用的访问量并发量的增加,应用读写分离是很有必要的.当然应用要实现读写分离,首先数据库层要先做到主从配置,本人前一篇文章介绍了mysql数据库的主从配置方式即:<mysql数据库主从配置&g ...
- mysql主从之基于mycat实现读写分离
一 环境 1.1 结构 192.168.132.125 mycat 192.168.132.121 master 192.168.132.122 slave 主从已经配置完成 1.2 安装myca ...
- mycat(读写分离、负载均衡、主从切换)
博主本人平和谦逊,热爱学习,读者阅读过程中发现错误的地方,请帮忙指出,感激不尽 1.环境准备 1.1新增两台虚拟机 mycat01:192.168.247.81 mycat02:192.168.247 ...
- Mycat实现读写分离,主备热切换
实验环境:ubutu server 14 Master IP:172.16.34.212 Slave IP:172.16.34.34.156 Mycat server IP:172.16.34.219 ...
- MySQL - MyCat 实现读写分离
前言 MyCat是一个彻底开源的,面向企业应用开发的大数据库集群,支持事务.ACID.可以替代MySQL的加强版数据库.其功能有可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群.融 ...
- SpringBoot 整合 MyCat 实现读写分离
MyCat一个彻底开源的,面向企业应用开发的大数据库集群.基于阿里开源的Cobar产品而研发.能满足数据库数据大量存储:提高了查询性能.文章介绍如何实现MyCat连接MySQL实现主从分离,并集成Sp ...
- Mycat的读写分离
1. Mycat实现读写分离的部署: https://www.cnblogs.com/softidea/p/5447566.html springboot动态数据源的原理以及配置: Spring内置了 ...
- 搭建基于MySQL的读写分离工具Amoeba
搭建基于MySQL的读写分离工具Amoeba: Amoeba工具是实现MySQL数据库读写分离的一个工具,前提是基于MySQL主从复制来实现的: 实验环境(虚拟机): 主机 角色 10.10.10.2 ...
- Mycat分布式数据库架构解决方案--Mycat实现读写分离
echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 安装完 ...
随机推荐
- 基于 KubeSphere CI/CD 将 Spring Boot 项目发布至 Kubernetes
本示例基于开源的 KubeSphere 容器平台 演示如何通过 GitHub 仓库中的 Jenkinsfile 来创建流水线,流水线共包括 8 个阶段,最终将一个 Hello World 页面部署到 ...
- Error executing DDL via JDBC Statement 导致原因之一:列名使用了sql关键字
WARN: GenerationTarget encountered exception accepting command : Error executing DDL via JDBC Statem ...
- 【LeetCode】46-全排列
题目描述 给定一个没有重复数字的序列,返回其所有可能的全排列. 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [ ...
- maven打包插件maven-assembly-plugin
1.POM文件添加jar包生成插件 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifac ...
- HashMap面试必问的数据结构相关知识
如果在看这篇文章时,对HashMap的结构还不是很了解,建议你参考前段时间写的<刨死你系列——HashMap剖析(基于jdk1.8)>,可能会对下面的提及到知识点有些帮助. 1:HashM ...
- 手写RPC框架指北另送贴心注释代码一套
Angular8正式发布了,Java13再过几个月也要发布了,技术迭代这么快,框架的复杂度越来越大,但是原理是基本不变的.所以沉下心看清代码本质很重要,这次给大家带来的是手写RPC框架. 完整代码以及 ...
- CAS ABA问题
java.util.concurrent包的最底层基础CAS技术,原理很简单. CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B.当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什 ...
- Java反序列化漏洞原理解析(案例未完善后续补充)
序列化与反序列化 序列化用途:方便于对象在网络中的传输和存储 java的反序列化 序列化就是将对象转换为流,利于储存和传输的格式 反序列化与序列化相反,将流转换为对象 例如:json序列化.XML序列 ...
- 14 (OC)* UIView和UILayer
总接来说就是如下几点: 1:每个 UIView 内部都有一个 CALayer 在背后提供内容的绘制和显示,并且 UIView 的尺寸样式都由内部的 Layer 所提供.两者都有树状层级结构,layer ...
- DOM之事件(二)
今天详细讲解JavaScript中的常用事件类型和功能. 一 鼠标事件 1, click:点击事件 等同于mousedown+mouseup,不管这两个事件间隔多久,都会触发一次click事件. 2 ...