mycat实现mysql分库(垂直切分)

本文介绍了如何使用mycat实现MySQL数据库的垂直切分,包括前置条件、关闭主库间互备、配置mycat、启动服务、登录验证等步骤,以确保不同表分布到不同数据库实例中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

第一章:mysql的主从复制之一主一从
第二章:mysql的主从复制之双主双从
第三章:mycat实现数据库的读写分离
第四章:mycat实现mysql分库(垂直切分)
第五章:mycat实现mysql分库(水平切分)
第六章:mycat ER表与全局表
第七章:mycat全局序列号

mycat实现mysql分库(垂直切分)

数据库切分之垂直切分:垂直切分就是将不同的表分布在不同的数据库实例中。

前置条件:

继续基于前面第一二三章配置的mysql和mycat进行配置。

关闭第二章中配置的两个主库(node01、node02)之间的互为主备

如果不关闭则数据会自动同步,无法达到分库的效果。如果业务量非常多需要多主多从的情况下,就不需要执行此步骤。继续按照第一二章配置另外一套多主多从就行了。
关闭node01作为备机:

stop slave

关闭node02作为备机:

stop slave

配置mycat

修改schema.xml文件,

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
        <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
        		<!--配置表名为test2的表自动路由到dn2的数据库中-->
                <table name = "test2" dataNode="dn2"></table>
        </schema>
        <dataNode name="dn1" dataHost="host1"  database="duck"/>
        <dataNode name="dn2" dataHost="host2"  database="duck"/>
        <dataHost name="host1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                <writeHost host="hostM1" url="192.168.1.106:3306" user="root" password="123456">
                         <readHost host="hostS1" url="192.168.1.107:3306" user="root" password="123456"></readHost>
                 </writeHost>
         </dataHost>
         <dataHost name="host2" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                 <writeHost host="hostM2" url="192.168.1.108:3306" user="root" password="123456">
                         <readHost host="hostS2" url="192.168.1.109:3306" user="root" password="123456"></readHost>
                 </writeHost>
         </dataHost>
</mycat:schema>

启动mycat的服务

mycat console

登录mycat

mysql -uroot -p123456 -h 192.168.85.111 -P8066

验证分库是否生效

create table test1(name varchar(32));
create table test2(name varchar(32));

登录node01查看是否创建了表test1,而没有创建test2。
登录node03查看是否创建了表test2,而没有创建test1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值