前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mycat1.6.7.6对Mysql分库配置

Mycat1.6.7.6对Mysql分库配置

作者头像
itze
发布2022-10-31 16:17:53
2940
发布2022-10-31 16:17:53
举报
文章被收录于专栏:IT者

环境

  • 操作系统:CentOS 7
  • Mysql版本:Mysql8
  • Mycat版本:Mycat1.6.7.6
  • host_1:127.0.0.1
  • host_2:127.0.0.2

方式

  1. 方式一:为了方便,可以先通过Mysql账户使用图形化工具Navicat在两台主机不同的Msql服务里创建好数据库及数据表,然后再修改Mycat配置文件,将对应的数据库及数据表配置好
  2. 方式二:提前再Mycat配置文件配置好数据库及数据表,通过Mycat服务去创建,Mycat会帮你自动将不同的数据表创建到配置对应的物理主机的Mysql服务下
  3. 注意:若要通过Mycat1.x版本建表,只能使用建表SQL,Mycat1.x不支持使用Navicat直接建表,这里是指不支持通过Navicat登陆Mycat服务,然后直接创建表,但是可以通过Navicat登陆Mycat

分库配置

修改 schema 配置文件

简单分库配置文件完整示例

代码语言:javascript
复制
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
    <schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100" randomDataNode="dn1" dataNode="dn1">
        <table name="customer" dataNode="dn2" ></table>
    </schema>
    <dataNode name="dn1" dataHost="host1" database="orders" />
    <dataNode name="dn2" dataHost="host2" database="orders" />

    <dataHost name="host1" maxCon="1000" minCon="10" balance="0"
              writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"  slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <!-- can have multi write hosts -->
        <writeHost host="hostM1" url="jdbc:mysql://127.0.0.1:3306" user="root"
                   password="123456">
        </writeHost>
    </dataHost>

    <dataHost name="host2" maxCon="1000" minCon="10" balance="0"
              writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"  slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <!-- can have multi write hosts -->
        <writeHost host="hostM2" url="jdbc:mysql://127.0.0.2:3306" user="root"
                   password="123456">
        </writeHost>
    </dataHost>
</mycat:schema>

配置解释

如果通过方式二去创建表,只有创建表明为:customer的时候,Mycat会自动帮你把表创建到对应的dn2的Host2主机配置的Mysql服务,创建其他的任意表,都将默认创建到dn1对应的Host1主机配置的Mysql服务

关于操作

开发者只需要通过操作Mycat服务去操作数据,不需要关心数据在哪个服务器哪个库中,比如你的后端你是Java,只需要将配置数据库的地方改为mycat的服务即可,CRUD和正常操作Mysql一样即可 比如

代码语言:javascript
复制
jdbc:mysql://127.0.0.1:8066/TESTDB...后面省略
  • 8066:Mycat服务默认端口
  • TESTDB:Mycat配置文件server.xml中配置的逻辑库名

注意事项

如果使用Mycat1.x版本进行分库操作,需要注意跨库目前不支持JOIN操作,分表不分库Mycat1.6.7.6亲测默认支持JOIN操作,无须配置ER表关系

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年1月17日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境
  • 方式
  • 分库配置
    • 简单分库配置文件完整示例
      • 配置解释
        • 关于操作
          • 注意事项
          相关产品与服务
          云数据库 SQL Server
          腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档