基于mycat实现mysql的读写分离

需要具备以下环境

1 mysql主从复制

2 jdk安装以及环境变量配置

请参考 mysql主从复制

请参考linux下安装mysql

以下为我的演示参考:

192.168.142.26 master- mysql  具备主从主从复制条件

192.168.142.25  slave- mysql  具备主从主从复制条件

192.168.142.27  slave- mysql  具备主从主从复制条件

192.168.142.28  mycat   安装了mysql

将压缩包 Mycat-server-1.6.7.3-release-20190828135747-linux.tar.gz 复制到 /usr/local目录下 解压

tar -zvxf Mycat-server-1.6.7.3-release-20190828135747-linux.tar.gz

查看是否安装了jdk 并配置环境变量

jps # 或者 java -version

请参考 linux(centOS7)安装jdk配置环境变量

修改myact/conf下的schema.xml 文件如下

    <schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1">
	</schema>

	<dataNode name="dn1" dataHost="host1" database="test" />

	<!--
	 writeType="1",所有写操作都随机的发送到配置的 writeHost
		3 基于 MySQL galary cluster 的切换机制(适合集群)(1.4.1)
	-->
	<dataHost name="host1" maxCon="1000" minCon="10" balance="3"
			  writeType="1" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
		<!-- 心跳检查 -->
		<heartbeat>select user()</heartbeat>
		<!-- 写节点的配置 -->
		<writeHost host="hostM1" url="192.168.142.26:3306" user="root"
				   password="123456">
			<!-- 从数据库的地址 以及数据库的账号密码 -->
			<readHost host="hostM2" url="192.168.142.25:3306" user="root" password="123456" />
			<readHost host="hostM3" url="192.168.142.27:3306" user="root" password="123456" />
		</writeHost>
	</dataHost>

  修改myact/conf下的service.xml 文件如下

<user name="test" defaultAccount="true">
		<property name="password">123456</property>
		<!-- 与schema中的名称保持一致 -->
		<property name="schemas">TESTDB</property>
</user>

 修改myact/conf下的rule.xml 文件如下 

	 <tableRule name="rule1">
                <rule>
						<!-- 主键 -->
                        <columns>id</columns>
						<!-- 分片规则 -->
                        <algorithm>func1</algorithm>
                </rule>
        </tableRule>

        <function name="func1" class="io.mycat.route.function.PartitionByLong">
				<!-- 分片数量 -->
                <property name="partitionCount">8</property>
				<!-- 分片最大长度 -->
                <property name="partitionLength">128</property>
        </function>

修改mycat下的log4j2.xml

 <asyncRoot level="debug" includeLocation="true">

 

启动myacat

cd /usr/local/mycat/bin
./mycat start #启动mycat./mycat status #查看启动状态

 

登录mycat

mysql -h 192.168.142.28 -P8066  -u test -p

 

use TESTDB;
create table user(id int primary key,name varchar(100));
insert into user(id,name) values(1,‘xiaoming‘);
select @@hostname; select * from test.user; 

查看日志

192.168.142.26 只有写节点进行了写操作

192.168.142.25  192.168.142.27 读节点进行读取数据

简单的mycat环境搭建ok!如果出现无法连接的现象,记得关闭防火墙!

如有问题,欢迎交流

 

 

 

原文地址:https://www.cnblogs.com/luyun-blog/p/12032417.html

时间: 2024-10-13 00:53:51

基于mycat实现mysql的读写分离的相关文章

基于Mycat的MySQL主从读写分离配置详解与示例

1.mycat二进制包安装 tar -zxvf Mycat-server-1.6.5-release-20180122220033-linux.tar.gzcd mycatmv mycat /opt/ useradd mycatchown -R mycat:mycat mycat 2.mysql操作搭建主库环境省略...... 创建数据库CREATE DATABASE `integration01` DEFAULT CHARACTER SET utf8 ; 创建物理表 CREATE TABLE

linux下mysql基于mycat做主从复制和读写分离之基础篇

Linux下mysql基于mycat实现主从复制和读写分离1.基础设施 两台虚拟机:172.20.79.232(主) 172.20.79.233(从) 1.1软件设施 mysql5.6.39 , mycat1.6-RELEASE jdk1.7及其以上版本2.实现步骤一(mycat实现读写分离) 1.首先在两台服务器安装mysql 1.下载mysql的repo源 $ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rp

MyCAT实现MySQL的读写分离

在MySQL中间件出现之前,对于MySQL主从集群,如果要实现其读写分离,一般是在程序端实现,这样就带来一个问题,即数据库和程序的耦合度太高,如果我数据库的地址发生改变了,那么我程序端也要进行相应的修改,如果数据库不小心挂掉了,则同时也意味着程序的不可用,而这对很多应用来说,并不能接受. 引入MySQL中间件能很好的对程序端和数据库进行解耦,这样,程序端只需关注数据库中间件的地址,而无需知晓底层数据库是如何提供服务. 作为当前炙手可热的MySQL中间件,MyCAT实现MySQL主从集群的读写分离

mycat做Mysql的读写分离

在MySQL中间件出现之前,对于MySQL主从集群,如果要实现其读写分离,一般是在程序端实现,这样就带来一个问题,即数据库和程序的耦合度太高,如果我数据库的地址发生改变了,那么我程序端也要进行相应的修改,如果数据库不小心挂掉了,则同时也意味着程序的不可用,而这对很多应用来说,并不能接受. 引入MySQL中间件能很好的对程序端和数据库进行解耦,这样,程序端只需关注数据库中间件的地址,而无需知晓底层数据库是如何提供服务. 作为当前炙手可热的MySQL中间件,MyCAT实现MySQL主从集群的读写分离

通过mycat实现mysql的读写分离

mysql的主从配置沿用上一篇博客的配置:https://www.cnblogs.com/MasterSword/p/9434169.html mycat下载地址:http://www.mycat.io/ 试验版本:Mycat-server-1.6-release # cd /usr/local # mv ~/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz /usr/local # tar -zxvf Mycat-server-1.6-R

Linux下mysql基于MyCat实现主从复制和读写分离

1.1 MyCat介绍及应用场景MyCat介绍MyCat是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里.MyCat发展到目前的版本,已经不是一个单纯的MySQL代理了,它的后端可以支持MySQL.S

Mycat实现Mysql主从读写分离

一.概述 关于Mycat的原理网上有很多,这里不再详述,对于我来说Mycat的功能主要有如下几种: 1.Mysql主从的读写分离 2.Mysql大表分片 3.其他数据库例如Oracle,MSSQL,DB2等的读写分离和分片. 之所以第3点单独列出来只是因为它不常用,而且使用的JDBC,连接Mysql则是直接使用Mysql协议. 对于Mycat的分片功能,由于遇到了几个很严重的BUG,同时分片带来的一系列并发问题比较繁杂,因此测试之后放弃了,这里只讨论读写分离. 二.安装配置 1.安装JDK(要求

MyCAT部署及实现读写分离(转)

MyCAT是mysql中间件,前身是阿里大名鼎鼎的Cobar,Cobar在开源了一段时间后,不了了之.于是MyCAT扛起了这面大旗,在大数据时代,其重要性愈发彰显.这篇文章主要是MyCAT的入门部署. 一.安装java 因Mycat是用java开发的,所以需要在实验环境下安装java,官方建议jdk1.7及以上版本 Java Oracle官方下载地址为: http://www.oracle.com/technetwork/java/javase/archive-139210.html 解压jdk

Mycat - 实现数据库的读写分离与高可用【转】

文章地址:https://www.cnblogs.com/youzhibing/p/9553766.html 前言 开心一刻 上语文课,不小心睡着了,坐在边上的同桌突然叫醒了我,并小声说道:“读课文第三段”.我立马起身大声读了起来.正在黑板写字的老师吓了一跳,老师郁闷的看着我,问道:“同学有什么问题吗?”,我貌似知道了什么,蛋定的说了一句:“这段写的真好!我给大伙念念!”,老师还较真了:“你说说看,好在哪里?”,顿时我就无语了,脸黑着望向了同桌了,心想着:“这是个畜生啊!” 路漫漫其修远兮,吾将