简单使用mycat实现单库分表

1.下载安装mycat

通过mycat的官网,下载对应的包,我这里选择安装的linux系统的

http://dl.mycat.io/

简单使用mycat实现单库分表_第1张图片

上传在服务器某一位置,然后在该目录下解压

tar -xf   Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz 

2.配置mycat

进入 mycat中conf,首先我们需要配置mycat的用户和密码

vi server.xml

找到 user这一栏,默认的应该是123456,本地不改跳过这一步也行,当然服务器上弱口令不是很好..

简单使用mycat实现单库分表_第2张图片

再修改 schema.xml

vi schema.xml





    
            
    

    
    
            select user()
            
    

 
  

:表示的是在mycat中的逻辑库配置,逻辑库名称为:TESTDB,默认是TESTDB,在schema上的 dataNode可以将对应数据库的表全部拿到TESTDB中。

:表示在mycat中的逻辑表配置,逻辑表名称为:r_problem ,映射到两个数据库节点dataNode中,切分规则为:rule1(在rule.xml配置)subTables 是分表 r_problem$1-3 是分为 r_problem1,r_problem2,r_problem3 三个表,我这里只进行了分表,没有分库,要分库 dataNode="dn01,dn02"选择添加下面配置的dataNode就行。

:表示数据库节点,这个节点不一定是单节点,可以配置成读写分离.

:真实的数据库的地址配置

:用户心跳检测

:写库的配置,password是mysql数据库的密码

再修改 rule.xml

vi rule.xml




    
        
            id
            mod-long
        
    
    
        
        3
    

count 数一定要和分库分表的结点个数对应,我这里分了3个表,就为3.

3.启动,连接mycat

在mycat 中lib下启动mycat

./bin/mycat { console | start | stop | restart | status | dump }  参数命令

./bin/mycat  start 启动

开放8066端口,然后远程连接

简单使用mycat实现单库分表_第3张图片  这个密码不是mysql的密码,是之前配置mycat的密码

如果你 2003 连接失败,./bin/mycat  status 检查是否启动 ,又 ./bin/mycat  console检查原因

我遇到的问题在这篇博客解决了.

https://blog.csdn.net/qq_43268365/article/details/86542764

连接成功后

可以修改TESTDB名字,然后在之前的xml改名字.我就默认没改了..

简单使用mycat实现单库分表_第4张图片

简单测试下

INSERT INTO r_problem(id,xxx) value ('x','x'),('x','x'),('x','x');

然后在连接你的mysql,数据应该就存入了mysql中的r_problem1-3中的某一个表,默认按照取模来存

注意是在mycat中,SELECT * FROM r_problem 就会得到 三个表的数据集合。

在贴一张recommend原数据库的图,和TESTDB是一样的

简单使用mycat实现单库分表_第5张图片

4.springboot配置

datasource:
  druid:
    url: jdbc:mysql://xxx.xx.xx.xxx:8066/TESTDB?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
    username: root
    password: xxxxx

把你之前的数据库连接端口改成 8066 ,用户和密码是mycat的,不是之前mysql的.

因为mycat是中间件,之前代码部分不需修改就已经完成了分库分表

值得注意的是


           


   

如果在schema上没有 dataNode ,就只能操作 table的表,其他表虽然在TESTDB显示,但不能被操作 

需要分库分表的表还是需要在table中配置。

 

 

 

 

 

你可能感兴趣的:(java,#,springboot整合)