美文网首页
docker安装MyCat,配置MySQL集群读写分离

docker安装MyCat,配置MySQL集群读写分离

作者: 彩笺w尺素 | 来源:发表于2020-04-17 10:57 被阅读0次

    MyCat是目前最流行的基于Java语言编写的数据库中间件,是一个实现了MySQL协议的服务器。MyCat是基于阿里开源的Cobar产品而研发,Cobar的稳定性、可靠性、优秀的架构和性能以及众多成熟的使用案例使得MyCat变得非常的强大。

    1. 拉取镜像

    docker pull fify/mycat
    

    2. 创建挂载目录

    mkdir -p /home/mycat
    

    将附件中的 server.xml、schema.xml 修改并拷贝至 /home/mycat 目录下;
    server.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mycat:server SYSTEM "server.dtd">
    <mycat:server xmlns:mycat="http://io.mycat/">
        <system>
            <!-- 1为开启实时统计、0为关闭 -->
            <property name="useSqlStat">0</property>  
            <!-- 1为开启全加班一致性检测、0为关闭 -->
            <property name="useGlobleTableCheck">0</property>  
            <property name="sequnceHandlerType">2</property>
            
            <!--默认为type 0: DirectByteBufferPool | type 1 ByteBufferArena-->
            <property name="processorBufferPoolType">0</property>
            
            <!--分布式事务开关,0为不过滤分布式事务,1为过滤分布式事务(如果分布式事务内只涉及全局表,则不过滤),2为不过滤分布式事务,但是记录分布式事务日志-->
            <property name="handleDistributedTransactions">0</property>
            <!-- off heap for merge/order/group/limit   1开启   0关闭 -->
            <property name="useOffHeapForMerge">1</property>
            <!-- 单位为m -->
            <property name="memoryPageSize">1m</property>
            <!-- 单位为k -->
            <property name="spillsFileBufferSize">1k</property>
            <property name="useStreamOutput">0</property>
            <!-- 单位为m -->
            <property name="systemReserveMemorySize">384m</property>
        </system>
    
        <user name="root">
            <property name="password">root123</property>
            <property name="schemas">test</property>
        </user>
    
    </mycat:server>
    

    schema.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
    <mycat:schema xmlns:mycat="http://io.mycat/">
    
        <schema name="test" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"> </schema>
        
        <!-- dataNode -->
        <dataNode name="dn1" dataHost="dh1" database="test" />
        
        <dataHost name="dh1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
            <!-- 心跳语句 -->
            <heartbeat>select user()</heartbeat>
            <!-- 写实例 -->
            <writeHost host="hostM1" url="192.168.40.2:3306" user="root" password="root123">
                <!-- 读实例 -->
                <readHost host="hostS1" url="192.168.40.3:3306" user="root" password="root123" />
                <readHost host="hostS2" url="192.168.40.5:3306" user="root" password="root123" />
            </writeHost>
        </dataHost>
    
    </mycat:schema>
    

    3. 创建容器

    docker run --name mycat --net=host -v /home/mycat/server.xml:/usr/local/mycat/conf/server.xml -v /home/mycat/schema.xml:/usr/local/mycat/conf/schema.xml --privileged=true -d fify/mycat
    

    4. 防火墙

    firewall-cmd --zone=public --add-port=8066/tcp --permanent
    firewall-cmd --reload
    firewall-cmd --list-ports
    

    5. 测试连接

    navicat

    6. 进入容器

    docker exec -i -t mycat /bin/bash
    

    7. 查看日志

    docker logs -f -t --since="2019-03-06" --tail=100 mycat 
    

    相关文章

      网友评论

          本文标题:docker安装MyCat,配置MySQL集群读写分离

          本文链接:https://www.haomeiwen.com/subject/ashevhtx.html