六、mycat全局自增
系列导航
一、实验环境
全局自增
实验环境 服务内容 dataNode
192.168.0.1 mycat dn162
192.168.0.2 mysql dn163
192.168.0.3 mysql dn164
二、实验内容
1、192.168.0.2 、192.168.0.3上分别在 ship_db_01和ship_db_02数据库上创建goobal_master表
注:建表脚本见:数据库环境及用户名密码见mycat实验数据.sql 2、162上进入本地的mysql(而不是mycat)创建名为mycat的database
>mysql -h 192.168.0.1 -P 3306 -uroot -p123456
mysql> create database mycat; 3、执行脚本文件dbseq.sql
cd /usr/local/mycat/conf vi dbseq.sql
开头部位增加: use mycat; [mycat@zhu conf]$ mysql -h 192.168.0.1 -P 3306 -uroot -p <dbseq.sql
Enter password: 4、查看权限
mysql -h 192.168.0.1 -P 3306 -uroot -p
mysql> use mysql;
Database changed
mysql> select user,host from user;
+---------------+-------------+
| user | host |
+---------------+-------------+
| root | % | mysql> show grants for root@'%';
+-------------------------------------------------------------+
| Grants for root@% |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION |
+-------------------------------------------------------------+ 注:这里如果不是root用户需要增加执行存储过程的权限
例如:grant execute on *.* to 'root'@'%'; 5、配置 service.xml.xml
将之前<property name="sequnceHandlerType">2</property>
改为:
<property name="sequnceHandlerType">1</property> 6、配置 schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="demo_db" checkSQLschema="false" sqlMaxLimit="100">
<table name="order_master" primaryKey="order_id" dataNode="dn163" />
<table name="customer_inf" primaryKey="customer_inf_id" dataNode="dn164" />
<table name="shipping_info" primaryKey="ship_id" dataNode="dn163_sp,dn164_sp" rule="mod-long" /> <!--这是水全局自增表-->
<table name="goobal_master" primaryKey="goobal_id" dataNode="dn163_sp,dn164_sp" rule="rule1" autoIncrement="true"/>
</schema> <dataNode name="dn163" dataHost="mysql163" database="order_db" />
<dataNode name="dn164" dataHost="mysql164" database="customer_db" /> <dataNode name="dn163_sp" dataHost="mysql163" database="ship_db_01" />
<dataNode name="dn164_sp" dataHost="mysql164" database="ship_db_02" /> <dataNode name="dn162" dataHost="mysql162" database="mycat" /> <!--这是水全局自增数据库begin-->
<dataHost name="mysql162" maxCon="1000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1" >
<heartbeat>select user()</heartbeat>
<writeHost host="192.168.0.1" url="192.168.0.1:3306" user="root" password="123456">
</writeHost>
</dataHost>
<!--这是水全局自增数据库end--> <dataHost name="mysql163" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" >
<heartbeat>select user()</heartbeat>
<writeHost host="192.168.0.2" url="192.168.0.2:3306" user="im_mycat" password="123456">
</writeHost>
</dataHost> <dataHost name="mysql164" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" >
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="192.168.0.3" url="192.168.0.3:3306" user="im_mycat" password="123456">
</writeHost>
</dataHost> </mycat:schema> 7、配置rule.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:rule SYSTEM "rule.dtd">
<mycat:rule xmlns:mycat="http://io.mycat/">
<tableRule name="mod-long">
<rule>
<columns>ship_id</columns>
<algorithm>mod-long</algorithm>
</rule>
</tableRule> <tableRule name="rule1">
<rule>
<columns>goobal_id</columns>
<algorithm>mod-long</algorithm>
</rule>
</tableRule> <function name="mod-long" class="io.mycat.route.function.PartitionByMod">
<!-- how many data nodes -->
<property name="count">2</property>
</function> </mycat:rule> 7、修改配置文件
vi /usr/local/mycat/conf/sequence_db_conf.properties
#sequence stored in datanode
GLOBAL=dn162
GOOBAL_MASTER=dn162
注:mycat就是在192.168.0.1上创建的数据库,GOOBAL_MASTER是需要用全局自增逐渐的表(表名一定要大写) 8、192.168.0.1的mycat库里添加 GOOBAL_MASTER表自增的信息
mysql> use mycat
Database changed
mysql> show tables;
+-----------------+
| Tables_in_mycat |
+-----------------+
| MYCAT_SEQUENCE |
+-----------------+
1 row in set (0.00 sec) mysql> select * from MYCAT_SEQUENCE;
+--------+---------------+-----------+
| name | current_value | increment |
+--------+---------------+-----------+
| GLOBAL | 1 | 1 |
+--------+---------------+-----------+
1 row in set (0.00 sec) mysql> insert into MYCAT_SEQUENCE values('GOOBAL_MASTER',1,1);
Query OK, 1 row affected (0.01 sec) mysql> commit;
Query OK, 0 rows affected (0.00 sec) 9、重启mycat 进入mycat插入数据测试
mycat@zhu ~]$ mycat restart >mysql -h 192.168.0.1 -P 8066 -umycat_user -p123456
mysql> show databases;
+----------+
| DATABASE |
+----------+
| demo_db |
+----------+
1 row in set (0.01 sec) mysql> use demo_db
Database changed
mysql> show tables;
+-------------------+
| Tables in demo_db |
+-------------------+
| customer_inf |
| goobal_master |
| order_master |
| region_info |
| shipping_info |
+-------------------+
5 rows in set (0.00 sec) insert into goobal_master(order_status )values(0);
insert into goobal_master(order_status )values(1);
insert into goobal_master(order_status )values(2);
insert into goobal_master(order_status )values(3);
insert into goobal_master(order_status )values(4);
insert into goobal_master(order_status )values(5);
insert into goobal_master(order_status )values(6);
insert into goobal_master(order_status )values(7);
insert into goobal_master(order_status )values(8);
insert into goobal_master(order_status )values(9); 10、 登录192.168.0.1上的mycat 以及192.168.0.2,192.168.0.3上的mysql查看自增id是否符合预期
192.168.0.1:
[root@zhu logs]# mysql -h 192.168.0.1 -P 8066 -umycat_user -p123456
mysql> use demo_db
mysql> select * from goobal_master order by goobal_id asc;
+-----------+--------------+
| goobal_id | order_status |
+-----------+--------------+
| 5 | 0 |
| 6 | 1 |
| 7 | 2 |
| 8 | 3 |
| 9 | 4 |
| 10 | 5 |
| 11 | 6 |
| 12 | 7 |
| 13 | 8 |
| 14 | 9 |
+-----------+--------------+
10 rows in set (0.03 sec) 192.168.0.2:
mysql> select * from goobal_master order by goobal_id asc;
+-----------+--------------+
| goobal_id | order_status |
+-----------+--------------+
| 6 | 1 |
| 8 | 3 |
| 10 | 5 |
| 12 | 7 |
| 14 | 9 |
+-----------+--------------+
5 rows in set (0.00 sec) 192.168.0.3:
mysql> select * from goobal_master order by goobal_id asc;
+-----------+--------------+
| goobal_id | order_status |
+-----------+--------------+
| 5 | 0 |
| 7 | 2 |
| 9 | 4 |
| 11 | 6 |
| 13 | 8 |
+-----------+--------------+
5 rows in set (0.00 sec)

六、mycat全局自增的更多相关文章
- mycat全局自增
指定自增类型 [root@node002 conf]# vi /usr/local/mycat/conf/server.xml 每个参数代表的含义: 0:本地文件自增方式. 1:使用mysql自增 ...
- MyCAT全局序列号-数据库方式
1.MyCat中的全局序列号介绍 在实现分库分表的情况下,数据库自增主键已无法保证自增主键的全局唯一.为此,MyCat 提供了全局 sequence,并且提供了包含本地配置和数据库配置等多种实现方式. ...
- MyCat教程六:全局序列号-全局主键的自增长
前面我们介绍了MyCat的分库分表操作,那么同一张表中的数据会被保存在不同的数据库中,那么这就涉及到了主键维护的问题,此时肯定不能使用单个数据库中id自增的方式来处理了,这时我们就可以通过MyCa ...
- MyCAT全局序列号
在实现分库分表的情况下,数据库自增主键已无法保证自增主键的全局唯一.为此,MyCat 提供了全局sequence,并且提供了包含本地配置和数据库配置等多种实现方式. 本地文件方式 原理:此方式MyCA ...
- MyCat配置简述以及mycat全局ID
Mycat可以直接下载解压,简单配置后可以使用,主要配置项如下: 1. log4j2.xml:配置MyCat日志,包括位置,格式,单个文件大小 2. rule.xml: 配置分片规则 3. schem ...
- Mycat 全局系列号
标签:utf8 概述 本篇文章介绍mycat怎样在分库分表的情况下保证主键的全局唯一方法,接下来就来分析三种方法各自的优缺点. 配置 文件方式获取 1.修改server配置文件 vim server. ...
- MyCat全局表和ER--笔记(三)
全局表 全局表的作用 在分片的情况下,当业务表因为规模而进行分片以后,业务表与这些附属的字典表之间的关联,就成了比较棘手的问题,考虑到字典表具有以下几个特性: 变动不频繁 数据量总体变化不大 数据规模 ...
- mycat - 全局序列
解决主键冲突问题:例如id自增的order表,如果分布式情况下不处理的话,当每个表的第一条数据id都是1. 怎么确保id唯一呢? 解决办法: 1.本地文件(不推荐) 2.数据库方式(推荐) 3.时间戳 ...
- 解决Mycat对自增表不支持(第一种已测试通过)
表 INSERT INTO news_class (`class_id`,`class_name`) VALUES (next VALUE FOR MYCATSEQ_GLOBAL,'1'); sequ ...
- Mycat 全局系列号(转载)
概述 本篇文章介绍mycat怎样在分库分表的情况下保证主键的全局唯一方法,接下来就来分析三种方法各自的优缺点. 配置 文件方式获取 1.修改server配置文件 vim server.xml < ...
随机推荐
- Aiganize组局小程序开发手册
1. 开发阶段概述: 第一阶段: 针对组局和参局的产品功能落地完善小程序, 修改前端界面,去除冗余, 完善数据库设计 完善组局参局的功能 让每个用户能参与组局大厅的组局 让用户能申请为组局者发起组局, ...
- C++ Qt开发:ComboBox下拉组合框组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍ComboBo ...
- windows端口被占用怎么办?
简单只需要按照一下命令查找到对应的端口kill掉就好了 1.查看本机所有的端口信息 netstat -ano 2.查看本机指定端口信息 netstat -ano | findstr "端口号 ...
- ClickHouse(19)ClickHouse集成Hive表引擎详细解析
目录 Hive集成表引擎 创建表 使用示例 如何使用HDFS文件系统的本地缓存 查询 ORC 输入格式的Hive 表 在 Hive 中建表 在 ClickHouse 中建表 查询 Parquest 输 ...
- 模拟QQ登陆
public class QQLogin { public static void main(String[] args) { int id1 = 123456; String pwd1 = &quo ...
- 98秒转录2.5小时音频,最强音频翻译神器IFW下载部署
IFW是一款功能强大的音频翻译工具,具备高速转录能力,能在短时间内完成大量音频处理,提高工作效率 以下是IFW在 Nvidia A100 - 80GB 上运行的一些基准测试: 最新中文版:https: ...
- 5.elasticsearch中查询条件
目录 一.URI查询 指定字段.泛查询 分组和phrase Bool条件 must条件 范围查询 通配符查询 正则表达式 模糊匹配与近似查询 二.RequestBody&DSL ignore_ ...
- tty详解
linux下tty命令详解 [功能] 打印连接到标准输入的终端的文件名. [描述] 命令项: -s, --silent, --quiet: 什么也不打印,只是返回退出状态码. --help: 打印帮助 ...
- Flutter Getx 状态管理 --- (依赖管理) GetxController
Flutter Getx 简单的状态管理(依赖管理) GetxController Getx 依赖管理简介 Get有一个简单而强大的依赖管理器,它允许你只用1行代码就能检索到与你的Bloc或Contr ...
- 听6位专家畅谈AI大模型落地实践:场景和人才是关键
本文分享自华为云社区<听6位专家畅谈AI大模型落地实践:场景和人才是关键>,作者:华为云社区精选. 随着人工智能技术的不断突破,越来越多的行业开始应用AI技术来提高效率.降低成本.改善用户 ...