博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mycat教程(二) —— mycat使用教程及分片方法案例
阅读量:6360 次
发布时间:2019-06-23

本文共 4417 字,大约阅读时间需要 14 分钟。

在完成mycat安装后, 开始一个示例来尽快熟悉mycat

一、环境说明

1. 服务器说明

服务器名称 地址 说明
mycat服务器 10.211.55.13 mycat中间件服务器
mysql服务器 10.211.55.9 mysql服务器

2. mysql 库和表说明

库名称 说明
db01 只有一个user表
db02 item表
db03 item表

db02,db03上的item表根据id%2取模保存数据, 也就是进行了数据分片

  1. db01 创建表语句

    CREATE TABLE `users` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(50) NOT NULL DEFAULT '',`indate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
  2. db02,db03 创建表语句
    CREATE TABLE `item` (`id` int(11) NOT NULL AUTO_INCREMENT,`value` int(11) NOT NULL DEFAULT '0',`indate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8

3. mycat服务器说明

mycat目录: /usr/local/mycat

至此, 我们的环境就配置好了

二、配置mycat服务

1. server.xml配置

路径在 /usr/local/mycat/conf/server.xml

0
0
1
0
8066
9066
300000
0.0.0.0
4096
32
0
1
1m
1k
0
384m
true
123456
TESTDB
user
TESTDB
true

2. 配置rule.xml

路径在: /usr/local/mycat/conf/rule.xml

function必须在tableRule的下面, 否则会报错找不到

id
mod-long
2
160

3. 配置schema.xml

路径在: /usr/local/mycat/conf/schema.xml

声明也必须按照顺序, 最不需要调用的, 放在最后。

select user()

4. 启动mycat

> cd /usr/local/mycat/bin> ./mycat start

如果发生错误可以查看/usr/local/mycat/logs/wrapper.log日志

三、验证

1. 验证user表的查询写入

账号和密码都是server.xml声明的

> /usr/local/mysql/bin/mysql -h10.211.55.13 -uroot -P8066 -p123456

2. 查看库

mysql> show databases;+----------+| DATABASE |+----------+| TESTDB   |+----------+1 row in set (0.00 sec)

发现有TESTDB库

3. 查看表

mysql> use TESTDB;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables;+------------------+| Tables in TESTDB |+------------------+| item             || users            |+------------------+2 rows in set (0.00 sec)

看到了item和users表, 这就是我们在schema.xml中声明的逻辑表, 实际对应的是mysql服务器上的表

4. 验证user的写入

mysql> insert into users (`id`, `name`, `indate`)values(1, 'test_name', '2017-01-01');Query OK, 1 row affected (0.08 sec)mysql>

去实际的users表中看, 数据也存在。

5. 验证查询

mysql> select * from users;+----+-----------+---------------------+| id | name      | indate              |+----+-----------+---------------------+|  1 | test_name | 2017-01-01 00:00:00 |+----+-----------+---------------------+1 row in set (0.06 sec)

也可以查到, 说明执行成功了

2. 验证item表

1. 验证写入

因为id分布式的话,id无法自增判断, 所以必须指定id, 否则提示错误。这个在稍后会介绍如何解决

mysql> insert into item(`id`, `value`, `indate`)values(1, 1, '2017-01-01');Query OK, 1 row affected (0.01 sec)

查看实际的库, 发现写在了db03库中,

再写入一条

mysql> insert into item(`id`, `value`, `indate`)values(2, 2, '2017-01-01');Query OK, 1 row affected (0.01 sec)

发现写在了db02库中, 所以分片的方式也成功了

2. 验证查询

+----+-------+---------------------+| id | value | indate              |+----+-------+---------------------+|  2 |     2 | 2017-01-01 00:00:00 ||  1 |     1 | 2017-01-01 00:00:00 |+----+-------+---------------------+2 rows in set (0.03 sec)

也有了两条记录


mycat教程(二) —— mycat使用教程及分片方法案例

转载地址:http://ksima.baihongyu.com/

你可能感兴趣的文章
boost bind使用指南
查看>>
Android M 特性 Doze and App Standby模式详解
查看>>
IE FF(火狐) line-height兼容详解
查看>>
TX Text Control文字处理教程(3)打印操作
查看>>
mysqld_multi实现多主一从复制
查看>>
中介模式
查看>>
JS中将变量转为字符串
查看>>
servlet笔记
查看>>
JVM(五)垃圾回收器的前世今生
查看>>
Spring Boot 自动配置之@EnableAutoConfiguration
查看>>
【微信公众号开发】获取并保存access_token、jsapi_ticket票据(可用于微信分享、语音识别等等)...
查看>>
datatable 获取最大值
查看>>
sqlserver2012一直显示正在还原(Restoring)和从单用户转换成多用户模式(单用户连接中)...
查看>>
spark复习总结02
查看>>
李瑞红201771010111《第九周学习总结》
查看>>
pymongo模块
查看>>
第0次作业
查看>>
快排+折半查找
查看>>
c# GC 新典型
查看>>
ssh bash 通配符
查看>>