数据分片概述 、 部署MyCAT服务

一、数据分片概述

在这里插入图片描述
在这里插入图片描述

水平分割

在这里插入图片描述

垂直分割

在这里插入图片描述

二、 部署MyCAT服务

2.1 mycat介绍

在这里插入图片描述

2.2 安装软件

[root@proxy1 ~]# yum -y install java-1.8.0-openjdk  安装环境
[root@proxy1 ~]# tar -xvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
[root@proxy1 ~]# mv mycat/ /usr/local/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用默认,不用修改
然后修改]# vim /usr/local/mycat/conf/schema.xml内容

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
<mycat:schema 选项 …>
<schema 选项 … > 逻辑库名
<table 选项 … /> 逻辑表
<table 选项 …>


<dataNode 选项 …/> 指定数据库服务器信息
<dataHost 选项 …/> 指定数据库服务器ip地址

</mycat:schema>

vim /usr/local/mycat/conf/schema.xml
<table name="company" primaryKey="ID" type="global" dataNode="dn1,dn2,dn3" />  #实列,节点都改为3台
<dataNode name="dn1" dataHost="localhost53" database="db1" />  #实列,dataHost自定义,database对应数据库名

<dataHost name="localhost55" maxCon="1000" minCon="10" balance="0"
                          writeType="0" dbType="mysql" dbDriver="native" switchType="1"            slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                <writeHost host="hostM55" url="192.168.4.55:3306" user="mao"
                                   password="123qqq...A">   #实列,对应数据库地址和其授权的用户
                </writeHost>
        </dataHost>

所连接的3台数据库,分别进行授权和创建对应的库,并进行验证是否正确

2.3 启动服务

[root@localhost mycat]# /usr/local/mycat/bin/mycat  start
[root@localhost mycat]# netstat -utnlp  | grep 8066 #查看端口
[root@localhost mycat]# ps -C java
[root@localhost mycat]# ls /usr/local/mycat/logs/  #查看日子

2.4 测试

[root@proxy1 ~]# vim /usr/local/mycat/conf/partition-hash-int.txt  #根据分片规则来
10020=2  #对应数据库三

客户端
[root@proxy ~]# mysql -h192.168.4.6 -P8066 -uroot -p123456
MySQL [TESTDB]> show tables;  #查看虚假表
MySQL [TESTDB]> create table employee(id int primary key auto_increment ,sharding_id int,name char(15) , age  int );  #创建表,只能创建对应虚假表的表名
MySQL [TESTDB]> insert into employee(sharding_id,name,age) values(10000,"mao",11); #插入数据,保存在第一台数据库服务器上面
MySQL [TESTDB]> insert into employee(sharding_id,name,age) values(10010,"mao1",2);   #插入数据,保存在第二台数据库服务器上面
MySQL [TESTDB]> insert into employee(sharding_id,name,age) values(10020,"mao2",3)  #插入数据,保存在第三台数据库服务器上面

数据服务器上查看
mysql> select * from employee;

2.5 分片规则

sharding-by-intfile

在这里插入图片描述在这里插入图片描述

mod-log

在这里插入图片描述
在这里插入图片描述

添加新库/表

在这里插入图片描述
在这里插入图片描述

重启mycat服务

在这里插入图片描述

发布了25 篇原创文章 · 获赞 2 · 访问量 578

猜你喜欢

转载自blog.csdn.net/f5500/article/details/104462260