MyCat实战案例



前言

  • 通过实战案例掌握MyCat的基本用法

一、准备数据库

四台服务器,其中三台用来搭建数据库,一台用来搭建MyCat。
下面通过docker的方式快速将三个数据库搭建出来。

1. 安装docker

请参考Docker安装与卸载(Linux版本)

2. 安装数据库

请参考Docker安装Mysql

二、下载、解压Mycat

Mycat官网

1. 下载

wget http://dl.mycat.org.cn/1.6.7.3/20190927161129/Mycat-server-1.6.7.3-release-20190927161129-linux.tar.gz

2. 解压

tar -xzvf Mycat-server-1.6.7.3-release-20190927161129-linux.tar.gz

三、Mycat配置

主要的配置文件server.xml、schema.xml、rule.xml和具体的分片配置文件。

1. server.xml

包含系统配置信息

system标签: 例如字符集、线程数、心跳、分布式事务开关等等。

user标签:配置登录用户和权限。

<user name="root" defaultAccount="true">
	<property name="password">123456</property>
	<property name="schemas">db1</property>
</user>

2. schema.xml

schema在MySQL里面跟数据库是等价的。

schema.xml包括逻辑库、表、分片规则、分片节点和数据源,可以定义多个schema

这里面三个主要的标签(dataHost、dataNode、table):

2.1 dataHost标签

配置物理主机的信息,readhost是从属于writehost的。将三个数据库的地址配置到dataHost标签下

<dataHost name="host1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
    <heartbeat>select user()</heartbeat>
    <!-- can have multi write hosts -->
    <writeHost host="hostM1" url="39.99.214.161:3306" user="root" password="123456"></writeHost>
    <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
</dataHost>
<dataHost name="host2" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
    <heartbeat>select user()</heartbeat>
    <!-- can have multi write hosts -->
    <writeHost host="hostM1" url="39.103.158.11:3306" user="root" password="123456"></writeHost>
    <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
</dataHost>
<dataHost name="host3" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
    <heartbeat>select user()</heartbeat>
    <!-- can have multi write hosts -->
    <writeHost host="hostM1" url="39.103.137.201:3306" user="root" password="123456"></writeHost>
    <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
</dataHost>

2.2 dataNode标签

一个Node节点就是一个schema,相当于MySQL中的一个库,数据节点与物理数据库的对应关系。

<dataNode name="host1-db1" dataHost="host1" database="db1" />
<dataNode name="host2-db1" dataHost="host2" database="db1" />
<dataNode name="host3-db1" dataHost="host3" database="db1" />

2.3 table标签

<schema name="db1" checkSQLschema="true" sqlMaxLimit="100">
	<!-- id取模分片 -->
	<table name="t1" dataNode="host1-db1,host2-db1,host3-db1" primaryKey="id" autoIncrement="true" rule="mod-long" />
	<!-- 全局表,会在每个节点保存一份完整表 -->
	<table name="t2" type="global" primaryKey="id" autoIncrement="true" dataNode="host1-db1,host2-db1,host3-db1"/>
	<!-- 单节点表 -->
	<table name="t3" primaryKey="id" autoIncrement="true" dataNode="host1-db1"/>
</schema>

3. 配置java

检查环境变量配置:conf/wrapper.conf

wrapper.java.command=/usr/local/jdk1.8.0_181/bin/java
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值