使用 docker 部署 mycat 中间件配置数据库读写分离、分库分表

本篇博客详细介绍了如何在Docker环境中使用Mycat作为中间件,配置数据库读写分离和分库分表。首先,通过引用Docker Hub上的Mycat镜像来避免自建。接着,重点讲解了配置文件,包括server.xml(服务及用户配置)、schema.xml(逻辑表配置)和rule.xml(分片规则)。配置完成后,将文件放在/mnt/mycatConf/目录下。然后,利用docker-compose启动Mycat服务。最后,通过连接到8066端口测试Mycat是否启动成功。
摘要由CSDN通过智能技术生成

前言

之前有一篇博客已经在docker 中将 mysql的主从配置讲述了,没有看的童鞋请转到下面的连接去看一下,本篇文章仅说明如何在docker环境下,启动mycat 并连接到 配置好主从的mysql数据库服务。
点这里 跳转 学习 docker 创建 mysql 主从集群

配置

镜像

废话不多说来看一下具体的配置。
不要重复造轮子(其实就是懒得构建自己的镜像),在docker hub上找一个大神构建好的mycat镜像拿来用。

# docker pull fjy8018/mycat

配置文件

server.xml 服务配置文件,包含登录用户配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://io.mycat/">
	<system>
	<property name="useSqlStat">0</property>  <!-- 1为开启实时统计、0为关闭 -->
	<property name="useGlobleTableCheck">0</property>  <!-- 1为开启全加班一致性检测、0为关闭 -->
		<property name="sequnceHandlerType">2</property>
		<!--默认为type 0: DirectByteBufferPool | type 1 ByteBufferArena-->
		<property name="processorBufferPoolType">0</property>
		<!--分布式事务开关,0为不过滤分布式事务,1为过滤分布式事务(如果分布式事务内只涉及全局表,则不过滤),2为不过滤分布式事务,但是记录分布式事务日志-->
		<property name="handleDistributedTransactions">0</property>
		
			<!--
			off heap for merge/order/group/limit      1开启   0关闭
		-->
		<property name="useOffHeapForMerge">1</property>

		<!--
			单位为m
		-->
		<property name="memoryPageSize">1m</property>

		<!--
			单位为k
		-->
		<property name="spillsFileBufferSize">1k</property>

		<property name="useStreamOutput">0</property>

		<!--
			单位为m
		-->
		<property name="systemReserveMemorySize">384m</property>
		<!--是否采用zookeeper协调切换  -->
		<property name="useZKSwitch">true</property>
	</system>
	
	<!-- 关键在这,配置一下用户的用户名 密码 数据库 -->
	<user name="root">
		<property name="password">root</property>
		<property name="schemas">testdb</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">testdb</property>
		<property name="readOnly">true</property>
	</user>

</mycat:server>

schema.xml 逻辑表配置

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
    <!-- 配置 逻辑表 信息信息-->
	<schema name="testdb" checkSQLschema="false" sqlMaxLimit="100">
		<table name="user_info" dataNode<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值