数据库中间件 MyCat1.6 安装使用(docker版)

本文档详细介绍了如何在Linux环境中使用Docker安装和配置Mycat1.6.7.6版本。首先,创建目录并下载安装包,然后编辑server.xml、schema.xml和rule.xml等配置文件。接着,通过Dockerfile创建镜像,并挂载配置文件和日志目录启动容器。最后,验证Mycat的连接和功能。提供了一个完整的Mycat在Docker环境中的部署实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

下载mycat安装包

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

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

server.xml 点击参考
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<server xmlns:mycat="http://io.mycat/">
	<system>
		参考:https://github.com/AlphaYu/Adnc/blob/master/doc/mycat/server.xml
	</system>
	<!-- mycat的用户名,密码,schema.xml 逻辑库名称 -->
	<user name="root" defaultAccount="true">
		<property name="password">
			88888888
		</property>
		<property name="schemas">
			adnc_clear_data
		</property>
	</user>
</server>


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


rule.xml 分表规则
<!-- 规则 -->
<tableRule name="mod-long">
	<rule>
		<columns>id</columns>
		<algorithm>mod-long</algorithm>
	</rule>
</tableRule>

<!-- 规则对应的配置计算类及参数 -->
<function name="mod-long" class="io.mycat.route.function.PartitionByMod">
	<!-- how many data nodes,可调整分表数量 -->
	<property name="count">5</property>
</function>

sequence_db_conf.properties 分表配置(必要设置)
<!-- 表名全大写 = 对应的节点库名称 -->
S_TT=dn_clear_data

下载dockerfile

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

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

创建mycat镜像与容器

#创建镜像文件
docker build -t mycat:1.6.7.6 .
#运行容器并挂载配置文件目录与日志目录
#-v /root/data/mycat/conf:/usr/local/mycat/conf 挂载配置文件目录
#-v /root/data/mycat/logs:/usr/local/mycat/logs 挂载日志目录
#带自建网络启动方式
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
# --network=adnc_net  adnc_net是自建的bridge网络,如果使用docker默认网络,不需要这段
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

验证使用

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

GitHub引用地址 docker安装Mycat

数据库中间件 MyCat1.6 安装使用(docker版)(引用自己的博文 - 转战CSDN)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值