前言:

Mycat:

一个彻底开源的,面向企业应用开发的大数据库集群

支持事务、ACID、可以替代MySQL的加强版数据库

一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群

一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server

结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品

一个新颖的数据库中间件产品

......

关于mycat更多的介绍,及文档,请点击Mycat官网

准备工作:

1、安装JDK:参考

2、安装Mycat:参考

3、配置数据库的主从同步:参考

开始搬砖:

1.配置/conf/schema.xml

  1. <?xml version="1.0"?>
  2. <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
  3. <mycat:schema xmlns:mycat="http://io.mycat/">
  4.  
  5. <!-- 配置逻辑库XMDB -->
  6. <schema name="XMDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1" />
  7. <!-- 映射到你实际数据库中的库名:xm -->
  8. <dataNode name="dn1" dataHost="node1" database="xm"/>
  9. <!-- 配置Host,设置数据库的参数 -->
  10. <dataHost name="node1" maxCon="1000" minCon="10" balance="1" dbType="mysql" dbDriver="native">
  11. <!-- 心跳检测,来看下面的host是否还可用 -->
  12. <heartbeat>select user()</heartbeat>
  13. <!-- 读写分离 -->
  14. <writeHost host="192.168.40.3" url="192.168.40.3:3306" user="root" password="123456">
  15. <readHost host="192.168.40.3" url="192.168.40.3:3316" user="root" password="123456" />
  16. </writeHost>
  17. <writeHost host="192.168.40.3" url="192.168.40.3:3316" user="root" password="123456" />
  18. </dataHost>
  19.  
  20. <!--
  21. <dataHost name="sequoiadb1" maxCon="1000" minCon="1" balance="0" dbType="sequoiadb" dbDriver="jdbc">
  22. <heartbeat> </heartbeat>
  23. <writeHost host="hostM1" url="sequoiadb://1426587161.dbaas.sequoialab.net:11920/SAMPLE" user="jifeng" password="jifeng"></writeHost>
  24. </dataHost>
  25.  
  26. <dataHost name="oracle1" maxCon="1000" minCon="1" balance="0" writeType="0" dbType="oracle" dbDriver="jdbc"> <heartbeat>select 1 from dual</heartbeat>
  27. <connectionInitSql>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'</connectionInitSql>
  28. <writeHost host="hostM1" url="jdbc:oracle:thin:@127.0.0.1:1521:nange" user="base" password="123456" > </writeHost> </dataHost>
  29.  
  30. <dataHost name="jdbchost" maxCon="1000" minCon="1" balance="0" writeType="0" dbType="mongodb" dbDriver="jdbc">
  31. <heartbeat>select user()</heartbeat>
  32. <writeHost host="hostM" url="mongodb://192.168.0.99/test" user="admin" password="123456" ></writeHost> </dataHost>
  33.  
  34. <dataHost name="sparksql" maxCon="1000" minCon="1" balance="0" dbType="spark" dbDriver="jdbc">
  35. <heartbeat> </heartbeat>
  36. <writeHost host="hostM1" url="jdbc:hive2://feng01:10000" user="jifeng" password="jifeng"></writeHost> </dataHost> -->
  37.  
  38. <!-- <dataHost name="jdbchost" maxCon="1000" minCon="10" balance="0" dbType="mysql"
  39. dbDriver="jdbc"> <heartbeat>select user()</heartbeat> <writeHost host="hostM1"
  40. url="jdbc:mysql://localhost:3306" user="root" password="123456"> </writeHost>
  41. </dataHost> -->
  42. </mycat:schema>

2.配置/conf/server.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- - - Licensed under the Apache License, Version 2.0 (the "License");
  3. - you may not use this file except in compliance with the License. - You
  4. may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0
  5. - - Unless required by applicable law or agreed to in writing, software -
  6. distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT
  7. WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the
  8. License for the specific language governing permissions and - limitations
  9. under the License. -->
  10. <!DOCTYPE mycat:server SYSTEM "server.dtd">
  11. <mycat:server xmlns:mycat="http://io.mycat/">
  12. <system>
  13. <property name="useSqlStat">0</property> <!-- 1为开启实时统计、0为关闭 -->
  14. <property name="useGlobleTableCheck">0</property> <!-- 1为开启全加班一致性检测、0为关闭 -->
  15.  
  16. <property name="sequnceHandlerType">2</property>
  17. <!-- <property name="useCompression">1</property>--> <!--1为开启mysql压缩协议-->
  18. <!-- <property name="fakeMySQLVersion">5.6.20</property>--> <!--设置模拟的MySQL版本号-->
  19. <!-- <property name="processorBufferChunk">40960</property> -->
  20. <!--
  21. <property name="processors">1</property>
  22. <property name="processorExecutor">32</property>
  23. -->
  24. <!--默认为type 0: DirectByteBufferPool | type 1 ByteBufferArena-->
  25. <property name="processorBufferPoolType">0</property>
  26. <!--默认是65535 64K 用于sql解析时最大文本长度 -->
  27. <!--<property name="maxStringLiteralLength">65535</property>-->
  28. <!--<property name="sequnceHandlerType">0</property>-->
  29. <!--<property name="backSocketNoDelay">1</property>-->
  30. <!--<property name="frontSocketNoDelay">1</property>-->
  31. <!--<property name="processorExecutor">16</property>-->
  32. <!--
  33. <property name="serverPort">8066</property> <property name="managerPort">9066</property>
  34. <property name="idleTimeout">300000</property> <property name="bindIp">0.0.0.0</property>
  35. <property name="frontWriteQueueSize">4096</property> <property name="processors">32</property> -->
  36. <!--分布式事务开关,0为不过滤分布式事务,1为过滤分布式事务(如果分布式事务内只涉及全局表,则不过滤),2为不过滤分布式事务,但是记录分布式事务日志-->
  37. <property name="handleDistributedTransactions">0</property>
  38.  
  39. <!--
  40. off heap for merge/order/group/limit 1开启 0关闭
  41. -->
  42. <property name="useOffHeapForMerge">1</property>
  43.  
  44. <!--
  45. 单位为m
  46. -->
  47. <property name="memoryPageSize">1m</property>
  48.  
  49. <!--
  50. 单位为k
  51. -->
  52. <property name="spillsFileBufferSize">1k</property>
  53.  
  54. <property name="useStreamOutput">0</property>
  55.  
  56. <!--
  57. 单位为m
  58. -->
  59. <property name="systemReserveMemorySize">384m</property>
  60.  
  61. <!--是否采用zookeeper协调切换 -->
  62. <property name="useZKSwitch">true</property>
  63.  
  64. </system>
  65.  
  66. <!-- 全局SQL防火墙设置 -->
  67. <!--
  68. <firewall>
  69. <whitehost>
  70. <host host="127.0.0.1" user="mycat"/>
  71. <host host="127.0.0.2" user="mycat"/>
  72. </whitehost>
  73. <blacklist check="false">
  74. </blacklist>
  75. </firewall>
  76. -->
  77.  
  78. <!-- 配置用户 -->
  79.  
  80. <user name="root">
  81. <property name="password">123456</property>
  82. <property name="schemas">XMDB</property>
  83.  
  84. <!-- 表级 DML 权限设置 -->
  85. <!--
  86. <privileges check="false">
  87. <schema name="TESTDB" dml="0110" >
  88. <table name="tb01" dml="0000"></table>
  89. <table name="tb02" dml="1111"></table>
  90. </schema>
  91. </privileges>
  92. -->
  93. </user>
  94.  
  95. <user name="user">
  96. <property name="password">user</property>
  97. <property name="schemas">XMDB</property>
  98. <property name="readOnly">true</property>
  99. </user>
  100.  
  101. </mycat:server>

3.开启mycat服务

:mycat start

4.查看开启状况/logs/wrapper.log

日志里会描述开启状况,及异常错误。

开启成功。

5.连接客户端测试读写分离。

2.Mysql集群------Mycat读写分离的更多相关文章

  1. mycat+mysql集群:实现读写分离,分库分表

    1.mycat文档:https://github.com/MyCATApache/Mycat-doc       官方网站:http://www.mycat.org.cn/ 2.mycat的优点: 配 ...

  2. Docker安装MySQL集群【读写分离】

    Centos7系统Docker安装 目录 Centos7系统Docker安装 目录 Centos7系统Docker安装 1.下载mysql镜像 2.创建Master实例并启动 参数说明 3.创建Sla ...

  3. atlas+mysql主主集群实现读写分离

     atlas+mysql主主集群实现读写分离 前言: 目前线上系统数据库采用的是主主架构.其中一台主仅在故障时切换使用,(仅单台服务器对外提供服务,当一台出现问题,切换至另一台).该结构很难支撑较大并 ...

  4. Mysql数据库优化一:集群(读写分离)之主从服务器的安装与配置

    Mysql数据库的集群(读写分离),说白了就是将读操作和写操作分开在不同的服务器上实现,以达到提高效率的目的. 大致原理如下: 数据库中的所有操作都是有日志记录的(前提是要打开这个日志记录功能) 1. ...

  5. mysql主从同步+mycat读写分离+.NET程序连接mycat代理

    背景 最近新项目需要用到mysql数据库,并且由于数据量大的原因,故打算采用1主1从(主数据库负责增.删.改操作:从数据库负责查操作)的数据库架构,在实现主从之后还要实现读写分离的代理,在网上搜寻了很 ...

  6. mysql与mycat搭建实现集群与读写分离

    数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了 ...

  7. 3.Mysql集群------Mycat分库分表

    前言: 分库分表,在本节里是水平切分,就是多个数据库里包含的表是一模一样的. 只是把字段散列的分到不同的库中. 实践: 1.修改schema.xml 这里是在同一台服务器上建立了4个数据库db1,db ...

  8. MySQL集群之MyCat

    MySQL集群之MyCat 一.MyCat简介及分析 1.1 MyCat是什么? 1.2 关键特性及应用场景 1.2.1 关键特性 1.2.2 应用场景 1.2.3 MyCat不适合的应用场景 1.3 ...

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

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

随机推荐

  1. python 横向比较最大值 贴标签

    df['dfda']=pd.Series(df[['a','b','v']].idxmax(axis=1),index=df.index)#横向比较最大值并返回列名,比循环快N倍

  2. 3DSMAX 安装失败

    AUTO Uninstaller 更新下载地址 1.选择3DSMAX 2.选择3DSMAX的版本 3.点击“开始卸载”,然后重新安装就可以了

  3. [转]href="#"与javascript:void(0)的区别

    本文转自:http://www.cnblogs.com/suizhikuo/p/3928411.html 如果我们想把a标签中的链接置成空链接,我们一般会用两种方法: 1 <a href=&qu ...

  4. Missing artifact jdk.tools:jdk.tools:jar:1.6

    今天从svn上面下载了一个mavan项目,出现Missing artifact jdk.tools:jdk.tools:jar:1.6 这个错误. 怎么解决了,在我的根pom.xml 下加入这个依赖就 ...

  5. Linux Bird

    o / : 2GB o /boot: 200MB o /usr : 4GB o /var : 2GB o /tmp : 1GB o swap : 1GB o /home: 5GB,并且使用 LVM 模 ...

  6. scrollHieght、offsetHeight、clientHeight、width、height

    1.scroll滚动(scrollTop.Left.Height.Width) scroll()当用户滚动指定的元素时,会发生 scroll 滚动事件: scrollWidth.scrollHeigh ...

  7. MySQL查询上个月数据

    SELECT * FROM order o WHERE o.payTime BETWEEN DATE_FORMAT(DATE_ADD(NOW(),INTERVAL MONTH),'%Y-%m-01') ...

  8. 硬盘的基础知识-SSD

    硬盘有三类:HDD(机械硬盘),SSD(固态硬盘),HHD(混合硬盘) 原理: HDD:磁性碟片 SSD: 闪存颗粒 HHD:磁性碟片的基础上加上了闪存颗粒. 这里对HDD,HHD不加说明,只对SSD ...

  9. php数组的定义

    数组的主要作用就是存储数据,修改数据. 数组:就是把多个数据放在一起管理. 数组可以存入多个不同类型的数据,是一个复合数据类型.   在PHP中,有两种方式定义数组 //$array = array( ...

  10. table表格td内内容自动换行

    项目开发时,遇到问题:td内传入数据,全是字母,不会自动换行 一般字母数字/特殊符号的话,会被浏览器默认是一个字符串或者说一个单词,不会自动换行 所以需要设置一下,让表格内容自动换行. 1.给td标签 ...