一、数据分片概述
水平分割
垂直分割
二、 部署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
添加新库/表