搭建两从两主服务器
再搭建一台mycat
启动mycat
1.创建添加数据源
将后端数据库服务器添加到mycat上面,以便管理和代理,让mycat 和mysql建立连接
添加方法如下
59只实现写
60只实现读
61实现写
62实现读
目录存放位置:
ls /usr/local/mycat/conf/datasources/
dr0.datasource.json dr1.datasource.json dw0.datasource.json dw1.datasource.json prototypeDs.datasource.json
/*+mycat:showDataSources{}*/ \G可以查看数据信息
在主服务器创建用户,授予权限.(是mycat提前设置好的,mycat定义好的连接的数据库的服务)
创建集群:
连接本机的mycat服务,创建集群
创建的集群保存在mycat安装目录下
ls /usr/local/mycat/conf/clusters/
查看集群信息
mysql> /*+ mycat:showClusters{}*/ \G
至此集群和数据源已经添加完毕,mycat可以实现读写分离
测试配置
创建表时 定义表使用的分片规则
存储数据是会根据表使用的分片规则的计算结果存储数据
在63本机上连接服务,创建网站存储数据使用的库名
配置文件存放位置
ls /usr/local/mycat/conf/schemas/tarena.schema.json
告诉我们
全局表: 不要分布式存储,每台上面都完整的存储数据
部门表
create table tarena.dept(dept_id int , dept_name char(10),primary key(dept_id)) default charset utf8 broadcast;
测试在c0和c1集群里数据库本机查看表里行
也就是说能在客户端写入数据库的信息,可以在集群里查看到.
员工表
工资表
分片表
mod_hash() 取余算法 除数 被除数
3 集群个数 c0 c1
3 2 1---------->c1
0---------->c0
tbpartitions 1 分表的分片个数:每个集群里有一个表
dbpartitions 2; 分库的分片个数,一般几个集群分几个库
通过mod_hash() 括号里面表头名 通过集群个数取余数决定存储在哪个数据库里面的哪个表里
ER表:有关联有关系的表,有关联关系的数据的表,数据有关联关系的表放在同一个表,把有关关系的表里的数据 存储在相同的集群里面..可以更好的找出信息,不需要跨服务器,如果存在两个存储服务器里,这样就找的快.使用相同分片规则.
工资表: