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

相关内容

热门资讯

凯特王妃将赴意大利,系病情缓解... 【环球网报道】据英国广播公司(BBC)、美联社等媒体报道,英国威尔士王妃凯特将于13日重返国际舞台,...
河南拟发行392.99亿元地方... 【大河财立方消息】 5月13日,河南省财政厅披露2026年河南省政府一般债券(六至七期)、专项债券(...
美军侦察机未经授权进入领空,奥... 【文/观察者网 熊超然】据“今日俄罗斯”(RT)当地时间5月13日报道,奥地利方面表示,该国已紧急出...
男子骑车闯红灯被罚,疑问“没车... 近日,一男子骑车时因闯红灯被处罚,后与交警产生对话,交警的回答被网友称赞为“教科书级别的科普”。司机...
他信,笑着出狱了 监狱大门打开的那一刻,泰国前总理他信微笑着张开双臂,拥抱小女儿佩通坦。佩通坦随后在社交媒体发布两人合...
冰箱漏电怎么测 1、可以用灯泡检查法来检测冰箱漏电,将36V灯泡的两根导线,一根接冰箱外壳(无漆处)另一根接大地,如...
电饭煲通电就跳闸怎么回事 如果之前电饭煲从未出现过跳闸现象,此现象为新出现的,有可能是插板或者是电饭煲发生故障导致的。首先可以...
空调外机有温度传感器损坏 最可能是温度传感器泄漏导致的这个原因。可以使用热毛巾加热温度检测管,将按钮设置为最低温度,并使用测试...
九阳铁釜电饭煲故障代码种类及解... 故障代码的种类很多,有E0表示电饭煲上盖热敏电阻故障,需要更换上盖的热门电阻;E1是热敏电阻故障,需...
九阳电饭锅的拆卸步骤 先拆锅底的四个小螺丝,然后将暴露出来的底拆开,然后拆卸电饭锅那儿的小盖板,用螺丝刀拆螺丝就行,然后将...