windows下安装配置并使用mycat

参考:http://www.cnblogs.com/parryyang/p/5758087.html

一 下载windows版本

https://github.com/MyCATApache/Mycat-download/tree/master/1.4-RELEASE

1 下载完成,将压缩文件解压到你想要放置的目标盘,比如我放在了d盘

2 配置mycat到环境变量

3 安装java

凡是开发的同学都差不多会安装java吧,至于怎么在环境变量中配置java自己不会就百度吧,因为mycat是java开发的 呵呵你懂的

二 配置mycat

2.1 配置server.xml

在conf文件夹下面找到server.xml并打开,下面是我的配置

<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://org.opencloudb/">
<system>
<property name="defaultSqlParser">druidparser</property>
<property name="charset">utf8mb4</property>
<property name="mutiNodeLimitType">1</property>
<property name="mutiNodePatchSize">100</property>
<property name="processors">32</property>
<property name="processorExecutor">32</property>
<property name="serverPort">8066</property>
<property name="managerPort">9066</property>
<property name="idleTimeout">300000</property>
<property name="bindIp">0.0.0.0</property>
<property name="frontWriteQueueSize">4096</property>
<property name="processors">32</property>
</system>
<user name="test">
<property name="password">test</property>
<property name="schemas">MSSP</property>
</user> <user name="user">
<property name="password">user</property>
<property name="schemas">MSSP</property>
<property name="readOnly">true</property>
</user>
</mycat:server>

server.xml里面就是配置mycat这个服务器的相关参数,比如说user就是配置一下你想要登陆并使用mycat的用户,并且指定这个用户可以操作哪一个逻辑数据库,和权限,这个好理解吧

2.2 读写分离配置

找到schema.xml这个文件并打开,配置一下逻辑数据库,并且这个逻辑数据对应要映射的数据节点,数据节点对应映射真实的物理数据库主机

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/"> <schema name="MSSP" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"> </schema>
<!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743"
/> -->
<dataNode name="dn1" dataHost="localhost1" database="xsmart_mssp_basedatacenter" />
<!-- <dataNode name="dn2" dataHost="localhost1" database="db2" />
<dataNode name="dn3" dataHost="localhost1" database="db3" /> -->
<!--<dataNode name="dn4" dataHost="sequoiadb1" database="SAMPLE" />
<dataNode name="jdbc_dn1" dataHost="jdbchost" database="db1" />
<dataNode name="jdbc_dn2" dataHost="jdbchost" database="db2" />
<dataNode name="jdbc_dn3" dataHost="jdbchost" database="db3" /> -->
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>show slave status</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="192.168.50.192:5869" user="root"
password="P@$$w0rd">
<!-- can have multi read hosts -->
<readHost host="hostS1" url="192.168.50.148:3306" user="root" password="P@$$w0rd" />
</writeHost>
<!-- <writeHost host="hostM2" url="192.168.50.215:3306" user="root"
password="P@$$w0rd" /> -->
</dataHost>
<!--
<dataHost name="sequoiadb1" maxCon="1000" minCon="1" balance="0" dbType="sequoiadb" dbDriver="jdbc">
<heartbeat> </heartbeat>
<writeHost host="hostM1" url="sequoiadb://1426587161.dbaas.sequoialab.net:11920/SAMPLE" user="jifeng" password="jifeng"></writeHost>
</dataHost> <dataHost name="oracle1" maxCon="1000" minCon="1" balance="0" writeType="0" dbType="oracle" dbDriver="jdbc"> <heartbeat>select 1 from dual</heartbeat>
<connectionInitSql>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'</connectionInitSql>
<writeHost host="hostM1" url="jdbc:oracle:thin:@127.0.0.1:1521:nange" user="base" password="123456" > </writeHost> </dataHost> <dataHost name="jdbchost" maxCon="1000" minCon="1" balance="0" writeType="0" dbType="mongodb" dbDriver="jdbc">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM" url="mongodb://192.168.0.99/test" user="admin" password="123456" ></writeHost> </dataHost> <dataHost name="sparksql" maxCon="1000" minCon="1" balance="0" dbType="spark" dbDriver="jdbc">
<heartbeat> </heartbeat>
<writeHost host="hostM1" url="jdbc:hive2://feng01:10000" user="jifeng" password="jifeng"></writeHost> </dataHost> --> <!-- <dataHost name="jdbchost" maxCon="1000" minCon="10" balance="0" dbType="mysql"
dbDriver="jdbc"> <heartbeat>select user()</heartbeat> <writeHost host="hostM1"
url="jdbc:mysql://localhost:3306" user="root" password="123456"> </writeHost>
</dataHost> -->
</mycat:schema>

  在datahost这个节点里面配置了读写的主机以及他们的用户和密码,mycat的标配就是两个master(主库)2个从库(slave),他们的实际关系是,主一才是真正的master,而主二作为主一的备胎,在主一正常是他会与主一同步,其他两个从库再与主二同步,如果主一不行了,就切换到主二,主一恢复了他又变成了主二,所以这样尽可能的保证数据库高可用吧,至于读写压力那是负载均衡的事情了

2.3 启动mycat

在有前面的配置过后进入mycat所在目录运行startup_nowrap.bat文件,查看log,查看mycat是否正常启动,如果有xml解析错误请查看自己xml有些地方是不是有语法错误,如果有一些数据库物理主机联不通请看下ip,端口这些配对没有。。。其他就没有了哦

三 主从复制于主从分离

可以说主从复制是主从分离的前提条件,mycat并不做主从复制,主从复制是mysql本身提供的机制,所以说我们需要先将主从复制在mysql之间跑起来,至于主从复制在

http://www.cnblogs.com/rjjs/p/7452766.html有配置作为参考,在主从复制正常过后我们再来启动mycat,经过这个过程我们已经搭建好主从数据库,建立好主从复制

四 验证主从分离

原有的mysql客户端不行了啥,因为mycat不是标准的mysql协议,呵呵我没搞懂为啥不搞成标准,就因为这个不标准搞出来很多蛋疼的事情比如orm用不了了 ~~~,于是你需要下载一个新的客户端navicat for mysql

http://dlsw.baidu.com/sw-search-sp/soft/0f/24312/navicat_trial_11.1.20.0.1449226634.exe,登陆注意登陆的时候就是使用server.xml里面你自己配置的用户名和密码,但是端口是8066专门给客户端使用的端口 哈哈

这个客户端就是作为mycat这个代理服务器的客户端,我们在这个客户端里面与使用mysql客户端基本上一样,比如sql语句随便里搞

可以先查询一下某个表然后去日志里面看,也可以写一条数据然后去看看主从数据库是否同步了,自己验证吧,哈哈 是不是好坑。

五 关于编程

说起编程就蛋疼了,特别是你是一名net程序员哈哈,原有的mysql.data.dll这个ado.net的驱动失效了,前面说过mycat非标准mysql协议 哈哈 蛋疼吧,咋办咋办呢?没有驱动了接口也就没有了 蛋疼不?话说早就已经有人搞了一个驱动 http://www.1234.sh/post/mycat-getting-started-cn,写到这里我们原有的什么nhibernate,什么ef都是基于ado.net这种orm工具基本上是不行了,而人家java领域的hibernate3就原封不动的支持mycat,net程序员是不是又被呵呵了,是的,mycat的研究告一段落,这个mysql代理服务器虽然很强大然而对于net来说实用性不是太高,不能兼容orm就是他的不兼容mysql协议搞得鬼吧,如果要用就得抛弃现有的orm,改动太多了,希望再找到好一点的mysql代理工具吧

数据库集群之路二 MYCAT的更多相关文章

  1. MyCAT+MySQL 搭建高可用企业级数据库集群——第2章 MyCat入门

    2-1 章节综述 2-2 什么是MyCat 2-3 什么是数据库中间层 2-4 MyCat的主要作用 2-5 MyCat基本元素 2-6 MyCat的安装 2-1 章节综述 1.掌握Mycat的基础概 ...

  2. MyCAT+MySQL 搭建高可用企业级数据库集群——第3章 MyCat核心配置讲解

    3-1 章节综述 3-2 常用配置文件间的关系 3-3 server.xml配置详解 3-4 log4j2.xml配置文件 3-5 rule.xml 3-6 常用分片算法(上) 3-7 常用分片算法( ...

  3. 十四、linux-MySQL的数据库集群读写分离及高可用性、备份等

    一.数据库集群及高可用性 二.mysql实现读写分离 mysql实现读写分离有多种方式: 1)代码语言(php\python\java等)层面实现读写分离,找开发进行实现. 2)通过软件工具实现读写分 ...

  4. mycat数据库集群系列之数据库多实例安装

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

  5. mycat数据库集群系列之mysql主从同步设置

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

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

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

  7. 聊一聊mycat数据库集群系列之双主双重实现

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

  8. docker应用-6(mysql+mycat 搭建数据库集群)

    上一节,通过使用overlay网络,搭建了跨主机的docker容器集群.下面,在这个跨主机的docker容器集群环境下,搭建mysql 数据库集群. mysql主从自动备份和自动切换 从数据安全性考虑 ...

  9. MySQL数据库集群进行正确配置步骤

    MySQL数据库集群进行正确配置步骤 2010-06-09 10:47 arrowcat 博客园 字号:T | T 我们今天是要和大家一起分享的是对MySQL数据库集群进行正确配置,我前两天在相关网站 ...

随机推荐

  1. python+selenium实现自动抢票

    使用说明 程序运行开始,需要输入出发地,目的地,出发时间,乘客信息,车次:乘客信息和车次可以输入多个 刚刚开始学习爬虫,selenium仅仅是解放了双手,运行效率不是很高: 程序运行时会打开chrom ...

  2. 【数据结构】线性表&&顺序表详解和代码实例

    喜欢的话可以扫码关注我们的公众号哦,更多精彩尽在微信公众号[程序猿声] 01 预备知识 1.0 什么是线性表? 线性表(List)是零个或者多个数据元素的有限序列. 首先它是一个序列.里面的元素是有顺 ...

  3. ubuntu安装cuda、cudnn

    环境: Ubuntu 16.04.4 LTS CUDA:8.0 CUDNN:5.1 CUDA下载:https://developer.nvidia.com/cuda-80-ga2-download-a ...

  4. python--基本类型之集合

    set(集合): 定义和创建: 定义:集合是一个无序的,不重复的数据集合,它主要作用1:去重,把一个列表变成集合,就自动去重了2:关系测试,测试两组数据之间的交集,差集,并集等关系 集合:把不同的数据 ...

  5. Lucene第二讲——索引与搜索

    一.Feild域 1.Field域的属性 是否分词:Tokenized 是:对该field存储的内容进行分词,分词的目的,就是为了索引. 否:不需要对field存储的内容进行分词,不分词,不代表不索引 ...

  6. Netty示例

    一,服务端 ** * 测试Netty类库:服务端代码 * Created by LiuHuiChao on 2016/10/24. */ public class NettyServerTest { ...

  7. 【POJ1733】Parity game

    [POJ1733]Parity game 题面 vjudge 题解 比较简单的分类并查集 将一个查询操作看作前缀和\(s_r-s_{l-1}\)的奇偶性 将每个点拆成一奇一偶然后分别连边即可 如果一个 ...

  8. springboot 常用依赖

    <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven ...

  9. 通过反编译看Java String及intern内幕--费元星站长

    通过反编译看Java String及intern内幕   一.字符串问题 字符串在我们平时的编码工作中其实用的非常多,并且用起来也比较简单,所以很少有人对其做特别深入的研究.倒是面试或者笔试的时候,往 ...

  10. L011系统文件属性知识进阶详解小节

    L011系统文件属性知识进阶详解小节 这节课的内容相对来说较少,一上午加中午就听完了,现在总结一下,最后会有一个相关的面试题. 首先先附上一张图: 今天学习主要跟①和②有关,①为Inode 号 ②为文 ...