mycat目前稳定版本是1.6.7.x版本,本文选择了1.6.7.6。
mycat安装前必须已经部署好数据库集群。
该文章为单库分表示例

下载mycat安装包

  1. #新建目录
  2. mkdir /root/data/mycat
  3. #切换目录
  4. cd /root/data/mycat
  5. #下载mycat release1.6.7.6到当前目录
  6. wget http://dl.mycat.org.cn/1.6.7.6/20201126013625/Mycat-server-1.6.7.6-release-20201126013625-linux.tar.gz
  7. mv Mycat-server-1.6.7.6-release-20201126013625-linux.tar.gz mycat1.6.7.6.tar.gz
  8. #解压conf目录到当前目录,因为使用docker直接挂载conf目录会报错,mycat启动时需要依赖conf目录中的文件。
  9. tar -zxvf mycat1.6.7.6.tar.gz -C /root/data/ mycat/conf

编辑配置文件 server.xml 与 schema.xml

点击参考 " class="reference-link">server.xml 点击参考

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mycat:server SYSTEM "server.dtd">
  3. <server xmlns:mycat="http://io.mycat/">
  4. <system>
  5. 参考:https://github.com/AlphaYu/Adnc/blob/master/doc/mycat/server.xml
  6. </system>
  7. <!-- mycat的用户名,密码,schema.xml 逻辑库名称 -->
  8. <user name="root" defaultAccount="true">
  9. <property name="password">
  10. 88888888
  11. </property>
  12. <property name="schemas">
  13. adnc_clear_data
  14. </property>
  15. </user>
  16. </server>

点击参考 " class="reference-link">schema.xml 点击参考

  1. <?xml version="1.0"?>
  2. <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
  3. <mycat:schema xmlns:mycat="http://io.mycat/">
  4. <!-- 配置1个逻辑库-->
  5. <schema name="adnc_clear_data" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn_clear_data">
  6. <!-- 配置分表规则,s_tt分成5个表,分表规则可以看 rule.xml,这里配置的数量与规则一致 -->
  7. <table name="s_tt" primaryKey="id" autoIncrement="false" dataNode="dn_clear_data" subTables="s_tt$1-5" rule="mod-long"/>
  8. </schema>
  9. <!-- 逻辑库对应的真实数据库-->
  10. <dataNode name="dn_clear_data" dataHost="dh_clear_data" database="clear_data" />
  11. <!--真实数据库所在的服务器地址,这里配置了1主 -->
  12. <dataHost name="dh_clear_data" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native">
  13. <heartbeat>select user()</heartbeat>
  14. <writeHost host="hostM1" url="172.16.10.234:3306" user="root" password="88888888" />
  15. </dataHost>
  16. </mycat:schema>

rule.xml 分表规则

  1. <!-- 规则 -->
  2. <tableRule name="mod-long">
  3. <rule>
  4. <columns>id</columns>
  5. <algorithm>mod-long</algorithm>
  6. </rule>
  7. </tableRule>
  8. <!-- 规则对应的配置计算类及参数 -->
  9. <function name="mod-long" class="io.mycat.route.function.PartitionByMod">
  10. <!-- how many data nodes,可调整分表数量 -->
  11. <property name="count">5</property>
  12. </function>

sequence_db_conf.properties 分表配置(必要设置)

  1. <!-- 表名全大写 = 对应的节点库名称 -->
  2. S_TT=dn_clear_data

下载dockerfile

由于mycat官方并没有提供docker镜像,我们需要自己编写dockerfile文件打包镜像。

  1. #下载dockerfile文件到当前目录
  2. wget https://raw.githubusercontent.com/AlphaYu/Adnc/master/doc/mycat/Dockerfile
  3. #如果下载失败,请手动下载并上传到/root/data/mycat目录,文件地址如下
  4. #https://github.com/AlphaYu/Adnc/blob/master/doc/mycat/Dockerfile

创建mycat镜像与容器

  1. #创建镜像文件
  2. docker build -t mycat:1.6.7.6 .
  3. #运行容器并挂载配置文件目录与日志目录
  4. #-v /root/data/mycat/conf:/usr/local/mycat/conf 挂载配置文件目录
  5. #-v /root/data/mycat/logs:/usr/local/mycat/logs 挂载日志目录
  6. #带自建网络启动方式
  7. docker run --privileged=true -p 8066:8066 -p 9066:9066 --name mycat -v /root/data/mycat/conf:/usr/local/mycat/conf -v /root/data/mycat/logs:/usr/local/mycat/logs --network=adnc_net --ip 172.20.0.16 -d mycat:1.6.7.6
  8. # --network=adnc_net adnc_net是自建的bridge网络,如果使用docker默认网络,不需要这段
  9. docker run --privileged=true -p 8066:8066 -p 9066:9066 --name mycat -v /root/data/mycat/conf:/usr/local/mycat/conf -v /root/data/mycat/logs:/usr/local/mycat/logs --ip 172.16.10.234 -d mycat:1.6.7.6

验证使用

  1. # 登录mycat,172.16.10.234 是指mycat容器的Ip地址,如果容器没有指定固定Ip,你的可能不一样,请注意。
  2. #链接mycat的账号密码(server.xml中设置的)也可以使用Navicat链接
  3. mysql -uroot -p88888888 -P8066 -h172.16.10.75
  4. # 显示所有数据库
  5. show databases;
  6. #显示的是配置是schema.xml中逻辑库的名称 adnc_clear_data

GitHub引用地址 [1.]docker安装Mycat

更多相关文章

  1. laravel 本地集成开发环境,路由访问 Not Found The requested UR
  2. 碰见文件名目录名或卷标语法不正确怎么解决?
  3. 解决Laravel5.5版本框架缺少vender目录报错问题
  4. 本地安装Node 12.14.1
  5. 安装配置php无法运行提示0xc000007b
  6. 基于AI技术的应用开源管理系统,对接AI有关的软件、硬件,提供基于AI
  7. 内网dns服务部署以及主从dns配置
  8. K8S v1.18.x 部署-Kubeadm方式-4:部署负载均衡
  9. K8S v1.18.x 部署-Kubeadm方式-5:部署Kubernetes HA集群

随机推荐

  1. Android 判断是否能真正上网
  2. Android学习笔记 --- Terms and installa
  3. Android(安卓)开发中Layout_Margin与padd
  4. Android获取程序路径 (/data/data/appname
  5. Android之获取手机信息
  6. android 跳转到当前应用的详情页面
  7. Toast——多次点击只显示一次解决方案
  8. Android 获取手机信息
  9. 修改系统分辨率
  10. Android framework完整源码下载