MyCat教程【分库分表】,java高并发面试题及答案

2.1 创建3个数据库

在master中分别创建3个数据库demo1,demo2,demo3,因为主从的关系会同步到从库中。

create database demo1 default character set utf8;

create database demo2 default character set utf8;

create database demo3 default character set utf8;

2.2 schema.xml配置

修改schema.xml文件中的信息,如下:

<?xml version="1.0"?>

<mycat:schema xmlns:mycat=“http://io.mycat/”>

<dataHost name=“localhost1” maxCon=“1000” minCon=“10” balance=“1”

writeType=“0” dbType=“mysql” dbDriver=“native” switchType=“1” slaveThreshold=“100”>

select user()

<writeHost host=“hostM1” url=“192.168.88.180:3306” user=“root”

password=“123456”>

</mycat:schema>

注意:

  1. 因为有三个库,所以添加了三个dataNode
  2. 使用的分配规则是crc32slot
  3. 主从和读写分离设置没有动,所以writeHost和readHost的配置没变

2.3 修改rule.xml文件

因为使用的是crc32slot算法,且有3个数据库,所以需要修改rule.xml中的配置

同时我们需要删除掉ruledata目录中的规则文件,不然修改的3不会起作用

重启mycat服务

查看分配规则

2.3 在mycat中创建t_user表

先删除原来创建的t_user表,然后通过mycat创建t_user表示,通过mycat创建会多出来一个_slot字段。

CREATE TABLE t_user (

id INT,

name VARCHAR (30),

age INT,

PRIMARY KEY (id)

) ENGINE = INNODB DEFAULT CHARSET = utf8;

经验分享 程序员 微信小程序 职场和发展