MyCat 单库分表,不能使用 join 操作 您所在的位置:网站首页 分库分表后join MyCat 单库分表,不能使用 join 操作

MyCat 单库分表,不能使用 join 操作

2023-10-06 00:24| 来源: 网络整理| 查看: 265

目录

 

零:MyCat 单库分表,事实证明是个坑,不能 join 不知道能用来干嘛。

ー:下载

二:修改 server.xml    MyCat 服务级别的配置

三:修改 schema.xml 逻辑库的配置 主要配置的是逻辑库,逻辑表,数据节点,和实际数据源之间的关系

四:修改 rule.xml

五:修改 MySQL 数据库

六:启动 MyCat

七:测试

零:MyCat 单库分表,事实证明是个坑,不能 join 不知道能用来干嘛。

具体的操作流程如下:

 

ー:下载

目前只有 1.6.5版本 以上支持单库分表。

下载,解压使用即可。

解压后,修改配置文件,在 mycat/conf 下

 

二:修改 server.xml    MyCat 服务级别的配置

MyCat 的配置文件,设置账号、参数等

        123456         mydb

设置 user name,password 及 schemas; 主要做的功能就是 逻辑库与用户 做映射。

name 和 password 在连接代理数据库 MyCat 时使用;

schemas 是逻辑库,要和 schema.xml 里的 schema name 对应。

 

三:修改 schema.xml 逻辑库的配置 主要配置的是逻辑库,逻辑表,数据节点,和实际数据源之间的关系

MyCat 逻辑数据库、表的映射关系,MySQL 数据节点、所属物理数据库的映射关系。

 

MyCat 对应的物理数据库和数据库表的配置

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           select user()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  

schema name 要和 server.xml 对应上,既多个用户拥有对该逻辑库的权限。

city表 设置分表三张,单库多表只能设置一个 datanote,rule 采用取模模式 mod-long 取模分片。

writeHost 和 readHost 可以设为同一数据库。上述配置为主从库。相关配置详见:MySQL 配置主从

 

四:修改 rule.xml

MyCat 分片(分库分表)规则.    mod-long 取模分片  取模列为 id 取模算法为 mod-long

             id         mod-long               3

此次选用默认的 mod-long 规则,只需修改 count 数,修改 property count 等于 3。这样,配置已经完成。

 

五:修改 MySQL 数据库

先在 MySQL 库上,建 3 张表,submeter1-3。如下图,从库中也创建了三张一样的表。

 

六:启动 MyCat

启动:

./mycat start

查看启动状态:

./mycat status

停止:

./mycat stop

重启(改变上面的 xml 配置不用重启,管理端可以重新载入):

./mycat restart

查看 logs/ 下的 wrapper.log 和 mycat.log 可以查看运行时问题和异常。

MyCat 启动日志:

cat ./logs/wrapper.log

MyCat应用日志:

cat ./logs/mycat.log

 

七:测试

mysql 创建 mydb 数据库,submeter1, submeter2, submeter3 三张表。

连接 mycat, 端口:8066,账号:lsq, 密码:********                // 对应 server 表中的 user 标签

执行 sql 语句,查看执行过程。

 

EXPLAIN

insert into submeter(id, l, s, q) VALUES (3, 'l3', 's3','q3')

可查看执行过程路由到物理表 submeter1 表上:

                

打开 mysql 中的 mydb 数据库 submeter1 表可看到数据:

                

 

其他:错误

运行 MyCat 时提示以下错误:

代理抛出异常错误: java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: server1: server1: nodename nor servname provided, or not known

解决办法:

linux 环境下 vim /etc/hosts win 环境下 C:\Windows\System32\drivers\etc    替换方案, 复制修改, 替换 将    127.0.0.1    localhost    改成    127.0.0.1    localhost    server1

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有