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. AI人工智能学习数据集

    AI人工智能学习数据集,列表如下. 商务合作,科技咨询,版权转让:向日葵,135—4855__4328,xiexiaokui#qq.com boston_house_prices.csvbreast_ ...

  2. composer Changed current directory to没反应

    根据官方手册执行composer global require "laravel/installer" 显示Changed current directory to C:/User ...

  3. Eclipse安装中文简体语言包

    原文地址:https://blog.csdn.net/qq_41101213/article/details/84405452 方法一:1. 下载中文语言包: 1.1 打开网址:http://www. ...

  4. Composer三步曲:安装、使用、发布

    转载地址:https://segmentfault.com/a/1190000011858458 原文是在我自己博客中,小伙伴也可以点阅读原文进行跳转查看,还有好听的背景音乐噢~ 在现代化的PHP开发 ...

  5. 【Mac】解决外接显示器时无法用键盘调节音量

    背景:mac book pro  外接一台显示器 可以有音量,音量较小, 外接两台显示器时候直接显示如下了 解决办法: 操作步骤: 从 GitHub 下载 SoundFlower 扩展,并安装.(首次 ...

  6. Android webview 写入cookie的解决方法以及一些属性设置

    原文地址:https://www.2cto.com/kf/201703/616868.html Android webview 写入cookie的解决方法以及一些属性设置,webview怎么设置写入C ...

  7. attribute__关键字举例之visibility

    /** @file visibilityT.c * @note * @brief * @author * @date 2019-6-20 * @note v1.0.0 Created * @histo ...

  8. LODOP设置打印份数及是否逐份输出

    LODOP中通过SET_PRINT_COPIES可以设置打印份数,例如:LODOP.SET_PRINT_COPIES(2);//指定份数为2份 如果一个任务里有多页,打印份数的时候,有两种输出方式,一 ...

  9. Amazon MWS Scratchpad

    https://mws.amazonservices.com/scratchpad/index.html Use this page to test Amazon MWS API request an ...

  10. shell脚本双引号、大括号、if语句注意事项

    1.双引号的问题 变量用双引号括起来的意义 如果变量不用双引号括起来,比如echo $a,那么隐含的意义就是,把$a变量的字符串,按照空格.制表符.换行符等符号来分割开.然后把这些分割后的每一项再按 ...