ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

docker 搭建Mycat环境实现Mysql数据库的读写分离

2020-07-08 22:05:29  阅读:379  来源: 互联网

标签:xml 1.6 1.2 server Mycat Mysql docker mycat


 

搭建Mycat环境

1.2 搭建Mycat环境

1.2.1 获取资源
#先获取mycat包

mkdir -p /data/mycat
cd /data/mycat
wget http://dl.mycat.org.cn/1.6.7.1/Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz

1.2.2 编写Dockerfile

FROM java:8
USER root
COPY Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz /
RUN tar -zxf /Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz
ENV MYCAT_HOME=/mycat
ENV PATH=$PATH:${MYCAT_HOME}/bin
WORKDIR $MYCAT_HOME/bin
RUN chmod u+x ./mycat
EXPOSE 8066 9066
CMD ["./mycat", "console"]

1.2.3 获取配置文件

tar -zxvf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz 
mv mycat/conf/ conf

 目录结构如下:

1.2.4 修改mycat配置文件
真正需要修改的只有三个文件,具体官方文档写的很详细;
(1):schema.xml ,(2):server.xml,(3):rule.xml;
现在搭建的是Mysql读写分离,修改schema.xml、server.xm即可。rule.xml用于分表分库配置文件。

schema.xml文件代码:

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
   <schema name="mycat" checkSQLschema="false" sqlMaxLimit="100">
        <table name="user" primaryKey="ID" dataNode="dn1,dn2"  />
    </schema>

    <dataNode name="dn1" dataHost="localhost1" database="demo2" />
    <dataNode name="dn2" dataHost="localhost1" database="demo3" />

    <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
        writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <writeHost host="hostM1" url="172.18.0.10:3306" user="root" password="root">
            <readHost host="hostM1" url="172.18.0.11:3306" user="root" password="root"> 
        </readHost>
            </writeHost>
    </dataHost>

</mycat:schema>

server.xm文件代码:

<?xml version="1.0" encoding="UTF-8"?>
<!-- - - Licensed under the Apache License, Version 2.0 (the "License"); 
    - you may not use this file except in compliance with the License. - You 
    may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 
    - - Unless required by applicable law or agreed to in writing, software - 
    distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT 
    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the 
    License for the specific language governing permissions and - limitations 
    under the License. -->
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://io.mycat/">
   

   <!-- 读写都可用的用户 -->
    <user name="root" defaultAccount="true">
        <property name="password">123456</property>
        <property name="schemas">mycat</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>

    <!-- 只读用户 -->
    <user name="user">
        <property name="password">user</property>
        <property name="schemas">mycat</property>
        <property name="readOnly">true</property>
    </user>

</mycat:server>

1.2.5 执行Dockerfile生成镜像

cd /data/mycat/
docker build -t mycat:1.6 . 

1.2.6 编写mycat启动脚本

docker run -d   -p:8066:8066 --name mysql-mycat --net docker-network --ip 172.18.0.20 -p 9066:9066 -v $PWD/logs:/mycat/logs -v $PWD/conf:/mycat/conf mycat:1.6

效果如下:

 

 1.2.7 验证效果

 

标签:xml,1.6,1.2,server,Mycat,Mysql,docker,mycat
来源: https://www.cnblogs.com/-mrl/p/13269458.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有