Mycat实现Mysql主从读写分离

一、概述

关于Mycat的原理网上有很多,这里不再详述,对于我来说Mycat的功能主要有如下几种:

1.Mysql主从的读写分离

2.Mysql大表分片

3.其他数据库例如Oracle,MSSQL,DB2等的读写分离和分片。

之所以第3点单独列出来只是因为它不常用,而且使用的JDBC,连接Mysql则是直接使用Mysql协议。

对于Mycat的分片功能,由于遇到了几个很严重的BUG,同时分片带来的一系列并发问题比较繁杂,因此测试之后放弃了,这里只讨论读写分离。

二、安装配置

1.安装JDK(要求至少JDK1.7以上)

tar -zxvf jdk-7u80-linux-x64.tar.gz
mv jdk1.7.0_80 /usr/local
vi /etc/profile
添加:
export JAVA_HOME=/usr/local/jdk1.7.0_80
export PATH=$JAVA_HOME/bin:$PATH
之后source /etc/profile生效,并用java -version检查新的jdk版本。

2.安装Mycat

#useradd mycat
#passwd mycat --设置密码

#tar xvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
#mv mycat/ /usr/local/

#chown -R mycat.mycat /usr/local/mycat/

#vi /usr/local/mycat/conf/wrapper.conf
wrapper.java.command=%JAVA_HOME%/bin/java

3.文件说明

如上我们将mycat安装到了/usr/local/mycat目录下,我们需要关注的只有2个文件夹conf和logs文件夹:

1)logs文件下只需要关注wrapper.log,这是mycat的日志

2)conf文件下只需要关注server.xml和schema.xml,其他的大多是分片相关的,本文不讨论。

三、读写分离配置

1)当前环境说明:

Mysql 主:mysql01 192.168.20.68

从:mysql02 192.168.20.69

Mycat安装在192.168.20.68上,我们的目的是实现一个名叫leo的库(也叫schema)的读写分离。

2)server.xml配置

关于Mycat性能调优的大多数参数都在此文件中,我们暂不关心,配置读写分离此文件只需要改动如下部分:

我们设置了mycat的用户名和密码是root和123456,此账号密码就是外部程序连接用的可以随意设置,下边的user/user只读用户是默认的可以删掉,不删的话修改下schema即可。

3)schema.xml

此文件就是用于具体配置读写分离的配置文件,废话不多说直接贴出具体的配置文件截图,其他地方无需修改。

图中设置了1个逻辑节点node1,这个node1对应逻辑主机host1,host1配置了writehost=mysql01,readhost=mysql02,真实的数据库连接账号密码leo/leo也是在这里才出现的。

在如上的xml文件中我们只需要关注4个标签,schema/table/dataNode/dataHost, writehost是dataHost的子标签,readhost是writehost的子标签。

其中schema定义了要读写分离的库,最好是真实库名。table定义了表信息,只有分片才用到因此这里直接全部注释。

dataNode定义了逻辑主机dataHost和库名,这里库名必须是真实的。dataHost定义了逻辑主机对应的物理主机,可以有多个写主机,每个写host可以对应多个读host。

writehost和readhost则包含具体的数据库连接信息。

dbDriver表示使用mysql协议,其他数据库选择JDBC。至于其他参数这里不做详细解释,网上很多。

4)读写分离测试

启动mycat:/usr/local/mycat/bin/mycat start

连接mycat:mysql -uroot -p123456 -P8066 -h127.0.0.1

Mycat自动连到的是从库,但是有DML操作就会转发到主库,此账户的权限等同于你在writehost和readhost中配置的账户权限。

原文地址:https://www.cnblogs.com/leohahah/p/8386128.html

时间: 2024-11-13 06:45:47

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

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

mycat做Mysql的读写分离

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

Amoeba实现mysql主从读写分离

架设amoeba,实现mysql主从读写分 安装amoeba前需要先安装jdk,因为amoeba是JAVA编写的,所以需要JDK环境的支持,至于版本需要在JAVA1.5以后,mysql数据库需要在4.1以后的版本. 以下是我的实验环境. System:    CentOS 6.5 Master mysql:192.168.88.133 Slave mysql:192.168.88.135 Amoeba server:   192.168.88.131 安装mysql及配置mysql主从这里省略,

mycat 使用 (主从 + 读写分离)

mycat 使用 mycat 源码地址 mycat 概述 是一个开源的分布式数据库系统,一个实现了 MySQL 协议的的 Server.前端用户可以把它看作是一个数据库代理,用 MySQL客户端工具和命令行访问,而其后端可以用 MySQL 原生(Native)协议与多个 MySQL服务器通信,也可以用 JDBC 协议与大多数主流数据库服务器通信.其核心功能是 分表分库,即将一个大表水平分割为 N 个小表,存储在后端 MySQL 服务器里或者其他数据库里. 数据切分 指通过某种特定的条件,将存放在

Amoeba搞定mysql主从读写分离

一个简单完整的 Mysql 主从复制,读写分离的示意图. 1. 首先搭建 Mysql 主从架构,实现 将 mater 数据自动复制到 slave MySQL 复制的工作方式很简单,一台服务器作为主机,一台或多台服务器作为从机.主机会把数据库的变化记录到日志.一旦这些变化被记录到日志,就会立刻(或者以设定的时间间隔)被送到从机. 使用MySQL 复制提供扩展大型网站的能力,这些大型网站的数据库主要是读操作(SELECTs).从机用於复制主机的銷秏是很少的(通常每个从机1%的开销),在大型网站中每个

CentOS系统 Amoeba+MySql主从读写分离配置 适合新手傻瓜式教程!-----仅供参考!

废话不说,直接开始: 一.安装mysql的三种方式,这里采用第2种(安装方式不再详解,请参照) http://www.cnblogs.com/babywaa/articles/4837946.html 1.rpm安装2.源码安装3.通用二进制源码安装 环境准备 192.168.5.10 master1 192.158.5.20 slave1 二.配置master服务器,192.168.5.101.第一步:登陆mysql,给root账号添加密码     //参考命令:SETPASSWORD = P

mysql主从-读写分离

一个完整的MySQL读写分离环境包括以下几个部分: 应用程序client database proxy database集群 在本次实战中,应用程序client基于c3p0连接后端的database proxy.database proxy负责管理client实际访问database的路由策略,采用开源框架amoeba.database集群采用mysql的master-slave的replication方案.整个环境的结构图如下所示: 实战步骤与详解 一.搭建mysql的master-slave