Blogger Information
Blog 11
fans 0
comment 1
visits 13854
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
数据库中间件 MyCat1.6 安装使用(docker版)
Alfred的学习笔记
Original
1530 people have browsed it

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

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>

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

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post