mycat核心概念

  逻辑库 mycat中定义、管理的数据库

  逻辑表 逻辑库中包含的需分库分表存储的表

  datanode 数据节点(分片节点),逻辑表分片的存放节点

  datahost 数据主机(节点主机),数据节点所在的主机

  writehost 写主机 真实的数据库服务主机

  readhost 读主机

  mysql主从同步配置

  1、 在主数据库上创建同步账号

  grant replication slave on *.* to 'repl'@'192.168.5.125' identified by '123456';

  2、 配置主节点,开启binlog,vi /etc/my.cnf,添加如下配置

log-bin=mysql-bin # 日志文件名前缀
server-id=1 # 在集群中的唯一id,值可以为1~2^32-1的整数

  3、重启mysql,进入,mysql客户端,SHOW MASTER STATUS 查看主库状态

  4、从节点,添加配置,vi /etc/my.cnf,添加

server-id=2

  5、进入从节点mysql客户端,执行 CHANGE MASTER TO 语句设置同步的主库

CHANGE MASTER TO MASTER_HOST='192.168.5.144',MASTER_USER='repl',MASTER_PASSWORD='123456';

  6、开启从库 START SLAVE; 查看从库状态 SHOW SLAVE STATUS;

  7、在主库执行下列命令,查看从库是否产生对应的数据库、表和数据

CREATE DATABASE orders CHARACTER SET 'utf8';

use orders;

CREATE TABLE t_order (
order_id BIGINT PRIMARY KEY,
order_time DATETIME,
customer_id BIGINT,
order_amount DECIMAL(8,2)
);

  mycat主从配置

  详细配置可参考: http://www.mycat.io/document/mycat-definitive-guide.pdf

  1、schema.xml 中配置逻辑库、数据节点,数据主机

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<!-- 注意:里面的元素一定要按 schema 、dataNode 、 dataHost的顺序配置 -->
<schema name="mydb1" checkSQLschema="false" sqlMaxLimit="100"
dataNode="mydn1">
</schema>
<dataNode name="mydn1" dataHost="dhost1" database="orders" />
<dataNode name="mydn2" dataHost="dhost2" database="orders" />
<!-- 读写分离第一种配置方式 -->
<dataHost name="dhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native">
<heartbeat>select user()</heartbeat>
<writeHost host="myhostM1" url="192.168.100.218:3306" user="mike"
password="Mike666!">
<readHost host="myhostS1" url="192.168.100.219:3306"
user="mike" password="Mike666!" weight="1" />
</writeHost>
</dataHost>
<!-- 读写分离第二种配置方式 -->
<dataHost name="dhost2" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native">
<heartbeat>select user()</heartbeat>
<writeHost host="myhostM2" url="192.168.100.218:3306" user="mike"
password="Mike666!"></writeHost>
<writeHost host="myhostS2" url="192.168.100.219:3306" user="mike"
password="Mike666!"></writeHost>
</dataHost>
</mycat:schema>

  2、server.xml 中用户数据库权限配置

<user name="root" defaultAccount="true">
<property name="password">123456</property>
<property name="schemas">mydb1</property>
</user>

  3、两种配置读写分离方式的区别

  第一种mysql写主机挂掉后读不可用,第二种第一台机器mysql挂掉后第二台mysql读写正常,其实就是stand by模式(备用模式)

  4、使用navicat或者java api像连接单台mysql一样去配置,mycat就会帮我们实现读写分离

数据库中间件之mycat读写分离的更多相关文章

  1. Mycat数据库中间件对Mysql读写分离和分库分表配置

    Mycat是一个开源的分布式数据库系统,不同于oracle和mysql,Mycat并没有存储引擎,但是Mycat实现了mysql协议,前段用户可以把它当做一个Proxy.其核心功能是分表分库,即将一个 ...

  2. MyCat读写分离-笔记(四)

    概述 Mycat能够实现数据库读写分离,不能实现主从同步,数据库的备份还是基于数据库层面的.Mycat只是数据库的中间件: Mycat读写分离配置 在MySQL中间件出现之前,对于MySQL主从集群, ...

  3. mycat数据库集群系列之mycat读写分离安装配置

    最近在梳理数据库集群的相关操作,现在花点时间整理一下关于mysql数据库集群的操作总结,恰好你又在看这一块,供一份参考.本次系列终结大概包括以下内容:多数据库安装.mycat部署安装.数据库之读写分离 ...

  4. Mycat读写分离、主从切换、分库分表的操作记录

    系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等都是系统发展迟早会遇到的技术问题问题.Mycat是一 ...

  5. Mycat 读写分离

    简介 Mycat 是 MySQL中间件,Mycat的原理中最重要的一个动词就是'拦截',它拦截了用户发送过来的SQL语句,首先对SQL语句做了一些特定的分析:如分片分析.路由分析.读写分离分析.缓存分 ...

  6. MySQL/MariaDB数据库的PROXY实现读写分离

    MySQL/MariaDB数据库的PROXY实现读写分离 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.ProxySQL概述 1>.各家互联网公司读写分离的解决方案 m ...

  7. Mysql之Mycat读写分离及分库分表

    ## 什么是mycat ```basic 1.一个彻底开源的,面向企业应用开发的大数据库集群 2.支持事务.ACID.可以替代MySQL的加强版数据库 3.一个可以视为MySQL集群的企业级数据库,用 ...

  8. Mycat读写分离的简单实现

    目录 1.Mycat读写分离的配置 1.1.Mycat是什么 1.2.Mycat能干什么 1.2.1.数据库的读写分离 1.2.1.1.数据库读写分离图解 1.2.2.数据库分库分表 1.2.2.1. ...

  9. web 项目 连接mycat 读写分离失效问题,

    问题描述:mycat 读写分离已配好,在sql工具上查询操作是可以的,但是在项目中,读数据就走write 数据库, 解决      :环境spring +mvc +ibaites,在java中自己写j ...

随机推荐

  1. Robot Framework安装使用

    关于robotframework环境搭建安装请参考 另外一篇博文:Robot Framework的环境搭建(就是一些库文件的安装) 项目基本流程: 1.创建项目New Project----选择dir ...

  2. 表单在ios下输入框必须重压或长按才能唤起软键盘

    解决方案: 一.在node_module里找到fastClick文件,然后找到focus方法,加一句focus方法即可解决:FastClick.prototype.focus = function(t ...

  3. vs 设置护眼背景颜色

    工具 —> 选项 —> 环境 —> 字体和颜色 —> 纯文本(显示项中) —> 项目背景 —> 自定义—> 色调位85.饱和度123.亮度205,保存即可.测 ...

  4. typeScript模块<二>

    /*模块 1 模块的的概念 2 模块导出的几种方法 1.export 导出声明 2.export 导出语句 3.export default 4.import导入模块 3 模块化封装上一讲的DB库 * ...

  5. shell编程系列19--文本处理三剑客之awk中的字符串函数

    shell编程系列19--文本处理三剑客之awk中的字符串函数 字符串函数对照表(上) 函数名 解释 函数返回值 length(str) 计算字符串长度 整数长度值 index(str1,str2) ...

  6. ISO/IEC 9899:2011 条款6.5.8——关系操作符

    6.5.8 关系操作符 语法 1.relational-expression: shift-expression relational-expression    <    shift-expr ...

  7. 测试一下windowsLiveWriter

    一个是看看这个东西能不能发布出博客,还有一个就是准备开始写博客了,所以随便写个作为开始吧,我不想多说什么目标啊,什么的,所以就这一句简单的一句话就够了.

  8. shiro解决一个账号异地登录的问题

    如下,找到session中的信息删除即可,按照这个方式试了下.基本可用 在多台服务器部署时,前提必须实现session共享. /** * 登录认证 * @param token * @return * ...

  9. win10网上邻居看不到别的共享电脑怎么样办

    https://jingyan.baidu.com/article/4853e1e5b714aa1909f72600.html

  10. Spring cloud微服务安全实战-6-4权限控制改造

    授权,权限的控制 令牌里的scope包含fly就有权限访问.根据Oauth的scope来做权限控制, 要让@PreAuthorize生效,就要在启动类里面写一个注解. 里面有一个属性叫做,就是在方法的 ...