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>
注意:
- 因为有三个库,所以添加了三个dataNode
- 使用的分配规则是crc32slot
- 主从和读写分离设置没有动,所以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;