docker 搭建Mycat环境实现Mysql数据库的读写分离
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了docker 搭建Mycat环境实现Mysql数据库的读写分离,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3130字,纯文字阅读大概需要5分钟。
内容图文
搭建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 验证效果
内容总结
以上是互联网集市为您收集整理的docker 搭建Mycat环境实现Mysql数据库的读写分离全部内容,希望文章能够帮你解决docker 搭建Mycat环境实现Mysql数据库的读写分离所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。