Mycat安装及测试分片总结
1.安装jdk1.7
2.连接实际mysql数据库
用命令行工具或图形化客户端,连接mysql,创建DEMO所用三个分片数据库;(默认schema.xml中的配置需要三个库)
CREATE database db1;
CREATE database db2;
CREATE database db3;
4.解压Mycat-server-1.X.X.X-20150105144205-Linux.tar.gz 到/usr/local/mycat
4.修改 mycat配置文件
server.xml:这里配置客户端连接mycat 使用的用户名和密码,以及配置用户对应的数据库(逻辑库,虚拟)
下面是默认配置(可不用修改):
<user name="root">
<property name="password">123456</property>
<property name="schemas">TESTDB</property>
</user>
schema.xml:由于采用一个mysql,所以配一个写和一个读(同一个)
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="localhost:3307" user="root"
password="123456">
<!-- can have multi read hosts -->
<readHost host="hostS2" url="localhost:3307" user="root" password="123456" />
</writeHost>
<!--<writeHost host="hostS1" url="localhost:3316" user="root"
password="123456" />-->
<!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
</dataHost>
5.进入 /usr/local/mycat/bin (默认数据端口为8066,管理端口为9066)
执行./mycat start
显示: Starting Mycat-server...
6. 进入logs目录,查看日志,如果wrapper.log 报错 java.NET.BindException: Address already in use 杀掉正在执行的相关java进程
ps -ef|grep java
kill -9 xxx
7.使用客户端连接mycat
端口8066,用户名root,密码123456
成功后可以看到 schema.xml中配置的逻辑表 如 employee等(假象)
查询表时会报错
7.确认:db1、db2、db3中没有表 employee
8.使用客户端连接mycat,通过mycat创建表
create table employee (id int not null primary key,name varchar(100),sharding_id int not null);
然后查看 db1 和 db2 发现都已经创建了表 employee,几乎同时创建。由于employee表没有配置到db3中,所以db3中没有employee表
9.插入数据
insert into employee(id,name,sharding_id) values(1,'leader us',10000);
然后分去db1 和 db2数据库中查询 ,发现db1中的empoyee表有数据插入,但是db2中没有。分片原因
10.直接连接 db2
插入数据
insert into employee(id,name,sharding_id) values(2,'zhanghui',10010);
db2数据库中新增一条数据:分片原因
11.通过mycat查询
select * from employee
返回两条数据
12.分片测试:
根据规则sharding-by-intfile(分片枚举)进行分片测试
employee逻辑表定义
<table name="employee" primaryKey="ID" dataNode="dn1,dn2"
rule="sharding-by-intfile" />
可以在rule.xml中找到 sharding-by-intfile 的定义
<tableRule name="sharding-by-intfile">
<rule>
<columns>sharding_id</columns>
<algorithm>hash-int</algorithm>
</rule>
</tableRule>
hash-int算法:
<function name="hash-int"
class="io.mycat.route.function.PartitionByFileMap">
<property name="mapFile">partition-hash-int.txt</property>
</function>
partition-hash-int.txt根据这个文件进行分片
在mycat安装目录 conf目录下能够找到这个 txt文件,里面的内容如下:
10000=0
10010=1
相当于 值为10000的数据 写入0 分片;10010写入1分片。 0 和1 代表分片序号。
步骤9 和10 的操作验证了这个分片规则,这里不重复
13.全局表测试:
<table name="company" primaryKey="ID" type="global" dataNode="dn1,dn2,dn3" />
注意 company表是 全局表,会冗余存在个分区。
在mycat 客户端执行:
create table company(id int not null primary key,name varchar(100));
执行完后 db1 db2 db3 中都创建了company表
插入数据:
insert into company(id,name) values(1,'hp');
执行完成后,db1 db2 db2中都 写入了这条数据
Mycat安装及测试分片总结的更多相关文章
- MyCat安装与测试教程 超详细!
MyCat安装与测试教程 超详细! MyCat基础知识 一.什么是MYCAT? 1. 一个彻底开源的,面向企业应用开发的大数据库集群 2. 支持事务.ACID.可以替代MySQL的加强版数据库 3. ...
- mycat安装和测试
mycat安装和测试 一. 环境准备 本机环境是三台centos6.5 IP 主机名 数据库名 安装软件 192.168.17.4 master db1 mycat,mysql 192.168.17 ...
- Mycat的简易安装及测试
1.环境 OS版本 CentOS release 6.5 (Final) 64bit DB版本 Mysql 5.6.37 Mycat 1.6 jdk1.7及以上版本 2.实战部署 1.创建用户及用户组 ...
- Mycat安装与使用
1.下载: https://github.com/MyCATApache/Mycat-download 具体下载哪个版本以发布为准,推荐1.4,1.5. 2.安装: 安全前,在Linu ...
- Mycat安装教程
1.下载: https://github.com/MyCATApache/Mycat-download 具体下载哪个版本以发布为准,推荐1.4,1.5. 2.安装: 安全前,在Linu ...
- linux中mycat的配置,分片,以及主从复制
1.1 安装环境 1.jdk:要求jdk必须是1.7及以上版本 2.Mysql:推荐mysql是5.5以上版本 1.2 安装步骤 Mycat有windows.linux多种版本.本教程为lin ...
- 数据库中间件之mycat安装部署(一)
在学习数据库中间件前,我们先抛出三个问题 1.数据库数据量不大,但并发读写操作很大,应该怎么办? 此时我们首先考虑使用缓存中间件来减轻读压力,如果不能满足则考虑数据库读写分离,此时就会引入新的问题,这 ...
- mycat安装与配置
1.安装jdk 测试jdk是否已经安装 [root@node002 ~]# java -version-bash: java: command not found 创建解压目录 [root@node0 ...
- mycat 安装 分表 分库 读写分离
简单的 理解 一下 mycat :如图 mycat 是一个 连接数据库的中介.一个独立安装的 工具,他连接着真实的数据库,并且 把自己伪装成一个数据库. 程序连接 mycat ,mycat 连接 到真 ...
随机推荐
- mongodb的基本语法(一)
一.数据库常用命令 1.Help查看命令提示 help db.help(); db.yourColl.help(); db.youColl.find().help(); rs.help(); 2.切换 ...
- HDFS原理解析(整体架构,读写操作流程及源代码查看等)
前言 HDFS 是一个能够面向大规模数据使用的.可进行扩展的文件存储与传递系统.是一种同意文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间.让实际上是通过网络来訪问文件的 ...
- Firefly 3288又一次制作android和lubuntu双系统固件
又一次制作android和lubuntu双系统固件 因为本人改动了lubuntu的驱动和设备树信息,为了方便烧写系统,所以又一次制作了双系统的固件. Firefly wiki教程里有android固件 ...
- stm32中的数据类型定义
STM32F10X.H #include "core_cm3.h" #include "system_stm32f10x.h" #include <std ...
- Hive SQL 常见问题(转载)
http://www.aboutyun.com/thread-14942-1-1.html 问题导读 1.Hive查询语句和SQL查询语句区别与联系. 2.distribute by.group by ...
- ultragrid checkbox
울트라그리드에 체크박스 넣을 사용하는 속성. cols["checked"].Header.Caption = ""; cols["checked ...
- Vivado 自带IP仿真问题
可以新建一个测试工程,通过IP catalog直接生产IP核,在IP核上右键选择 Open IP Example Design 之后选择生成路径. 启动Run Simulation.
- 匿名内部类 , Iterable<T> 和 Iterator<T>
package generic; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; i ...
- vue render函数 函数组件化
之前创建的锚点标题组件是比较简单,没有管理或者监听任何传递给他的状态,也没有生命周期方法,它只是一个接受参数的函数 在这个例子中,我们标记组件为functional,这意味它是无状态(没有data), ...
- spring-core依赖jar包