zoukankan      html  css  js  c++  java
  • 在现有的mysql主从基础上,搭建mycat实现数据的读写分离

    环境准备:MySQL服务器做好主从复制;centos6的系统

        主:192.168.164.131

        从:192.168.164.144

        mycat服务器:192.168.164.141

    a.将MySQL主从做好,测试没问题

    b.在mycat.io中下载好软件

    c.解压到指定路径下: tar xf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz -C /usr/local/

    d.在mycat服务器上装好java环境

    e.进入/usr/local/mycat/conf进行配置

    此处是我的配置文件

    vim schema.xml                该配置文件定义的效果为:读操作随机分发到hostM1和hostS2上,写操作只在hostM1上
    
    <?xml version="1.0"?>
    <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
    <mycat:schema xmlns:mycat="http://io.mycat/">
            <schema name="DBB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn_test"> </schema>
            <dataNode name="dn_test" dataHost="dh_01" database="yichangbwg" />
            <dataHost name="dh_01" maxCon="1000" minCon="10" balance="2"
                              writeType="0" dbType="mysql" dbDriver="native" switchType="-1"  slaveThreshold="100">
                    <heartbeat>select user()</heartbeat>
                    <!-- can have multi write hosts -->
                    <writeHost host="hostM1" url="192.168.164.131:3306" user="root"
                                       password="hdlnmp">
                            <readHost host="hostS2" url="192.168.164.143:3306" user="root" password="hdlnmp" />
                    </writeHost>
                    <writeHost host="hostS1" url="192.168.164.143:3306" user="root"
                                       password="hdlnmp">
                    </writeHost>
            </dataHost>
    </mycat:schema>

    另一个配置文件:

    vim server.xml
    
    ...
    ...
    <user name="mycat" defaultAccount="true">
                    <property name="password">123456</property>
                    <property name="schemas">DBB</property>
    
                    <!-- 表级 DML 权限设置 -->
                    <!--            
                    <privileges check="false">
                            <schema name="TESTDB" dml="0110" >
                                    <table name="tb01" dml="0000"></table>
                                    <table name="tb02" dml="1111"></table>
                            </schema>
                    </privileges>           
                     -->
            </user>
    ...

    以上配置文件设置好之后,启动mycat服务

    /usr/local/mycat/bin/mycat start

    查询默认端口判断服务是否正常运行

    netstat -nltp | grep 8066

    netstat -nltp | grep 9066

    测试mycat读写分离:

    在mycat服务器上:

    mysql -h127.0.0.1 -umycat -p123456 -P8066

    测试方法:关闭mysql主服务器,查看是否还能在mycat上进行读操作

         关闭mysql从服务器,查看是否还能在mycat上进行读写操作

         在mysql从服务器上插入一条数据,在mycat上进行读操作,查看是否能随机看到该数据

  • 相关阅读:
    魅力惠_百度百科
    新奢侈主义_百度百科
    FastSocket学习笔记~再说客户端与服务端的组成
    在线支付文章索引(支付宝_微信_银联)
    微信JSApi支付~微信支付代理模式的实现(原创)
    爱上MVC~ajax调用分部视图session超时页面跳转问题
    C#~异步编程再续~await与async引起的w3wp.exe崩溃-问题友好的解决
    poj-3895-Cycles of Lanes 简单DFS
    How to search a table in a store proc and open the store proc
    Github-Client(ANDROID)开源之旅(四) ------ 简介Roboguice
  • 原文地址:https://www.cnblogs.com/new-journey/p/10818119.html
Copyright © 2011-2022 走看看