• 在现有的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上进行读操作,查看是否能随机看到该数据

  • 相关阅读:
    小水滴
    “星际穿越”观后感(宇宙只是界面,科技永远触摸不到世界的本原)
    惊涛怪浪(double dam-break) -- position based fluids
    [转]Data Structure Recovery using PIN and PyGraphviz
    [转]Adventures in Xen exploitation
    [转]iOS Tutorial – Dumping the Application Memory Part 2
    [转] Building xnu for OS X 10.10 Yosemite
    [转]iOS Tutorial – Dumping the Application Heap from Memory
    [转]Even when one byte matters
    [转]iOS IPC via NSFileCoordinator and NSFilePresenter
  • 原文地址:https://www.cnblogs.com/new-journey/p/10818119.html
Copyright © 2020-2023  润新知