mycat教程(二) —— mycat使用教程及分片方法案例
admin
2023-05-03 03:41:41
0

在完成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 -h20.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 names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> 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使用教程及分片方法案例

相关内容

热门资讯

卖“毒蛋”的人,抓到了 作者 | 何国胜 编辑 | 向现“(人)抓到了,目前案件正在侦办中。”7月28日晚间,苏州禁毒部门有...
尺素金声丨实施零关税国家达63... 海关总署发布的数据显示,今年5月1日起,我国对53个非洲建交国全面实施零关税举措,目前,我国实施零关...
职业索赔盯上基层诊所,倒逼用药... 文 | 布丁基层诊所正在被职业索赔盯上。据新京报,去年夏天,一男子走进河南南阳一家诊所,要求购买三瓶...
“西瓜我全买了”就可以肆意妄为... 拿西瓜砸了人,把瓜都买了,就能一走了之吗?事实证明,这套逻辑在法治社会行不通。7月28日晚,据海峡都...
科学家在日本广岛发现新物质,系... 在美国对日本广岛进行原子弹轰炸近81年后,科学家们在广岛的沙滩上发现了一种奇异且从未被发现过的新物质...
AI失控,反噬开始 作者 | 贺一 编辑 | 阿树近期,中国开源模型在美国频繁引发热议。7月28日,月之暗面发布Kimi...
“总统千金天价离婚”,分到43... 2026年7月24日下午,首尔高等法院,一场持续近十年的司法拉锯战终于接近尾声。法庭裁定SK集团会长...
巴基斯坦,又拿下一个历史性协议 全世界都没想到,接连的中东大战,巴基斯坦正成为最大赢家。去年以色列追杀哈马斯,空袭卡塔尔首都,阿拉伯...
汇正财经贺峰的一对一指导服务怎...   对于考虑购买证券投资顾问服务的投资者来说,'一对一指导服务怎么样'是一个重要的考量维度。需要首先...
重庆失联00后网格员龚宝冬确认...   重庆失联00后网格员龚宝冬确认遇难  【重庆失联00后网格员龚宝冬确认遇难】2026年7月29日...