mycat:垂直分库

Posted 纯洁的明依

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mycat:垂直分库相关的知识,希望对你有一定的参考价值。

1、课程名称:垂直分库


2、具体内容

所谓的垂直分库指的就是将一个数据库上的数据表的信息拆分到不同的数据库上进行保存。

本次将使用两个数据库进行演示,具体的主机信息如下。

1、 【mysql-server-01】主机上建立相应的数据表:

· 启动 mysql 服务:nohup mysqld_safe --user=root > /dev/null 2>& 1 &

· DROP DATABASE IF EXISTS mdb ;CREATE DATABASE mdb CHARACTER SET UTF8 ;use mdb ;CREATE TABLE member( mid VARCHAR(50) , name VARCHAR(50) ,age INT ,salary DOUBLE , birthday DATE , note TEXT ,CONSTRAINT pk_mid PRIMARY KEY(mid)) ;INSERT INTO member(mid,name,age,salary,birthday,note) VALUES ('mldn','hello',10,2000.0,'2005-11-11','very good') ;INSERT INTO member(mid,name,age,salary,birthday,note) VALUES ('admin','administrator',10,2000.0,'2005-11-11','very good') ; INSERT INTO member(mid,name,age,salary,birthday,note) VALUES ('guest','administrator',10,2000.0,'2005-11-11','very good') ;登录 mysql 客户端:mysql -uroot -pmysqladmin;

2、 【mysql-server-02】主机上建立相应的数据表

· 启动 mysql 服务:nohup mysqld_safe --user=root > /dev/null 2>& 1 &;

· DROP DATABASE IF EXISTS gdb ;CREATE DATABASE gdb CHARACTER SET UTF8 ;use gdb ;CREATE TABLE goods(gid INT AUTO_INCREMENT , title VARCHAR(50) ,price DOUBLE ,CONSTRAINT pk_gid PRIMARY KEY(gid)) ;登录 mysql 客户端:mysql -uroot -pmysqladmin;

3、 【mycat-server-01】进行 mycat 的配置:vim /usr/local/mycat/conf/schema.xml;

<?xml version="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schema xmlns:mycat="http://io.mycat/"><readHost host="hostS1" url="192.168.122.194:3306" user="root" password="mysqladmin"/><writeHost host="hostM1" url="192.168.122.193:3306" user="root<schema name="TESTGDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dnGdb"/><schema name="TESTMDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dnMdb"/><dataNode name="dnGdb" dataHost="localhost1" database="gdb" /><dataNode name="dnMdb" dataHost="localhost2" database="mdb" /><dataHost name="localhost1" maxCon="1000" minCon="10" balance="2"writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"><heartbeat>select user()</heartbeat><writeHost host="hostM1" url="192.168.122.195:3306" user="root" password="mysqladmin"/></dataHost><dataHost name="localhost2" maxCon="1000" minCon="10" balance="2"writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"><heartbeat>select user()</heartbeat><writeHost host="hostM1" url="192.168.122.176:3306" user="root" password="mysqladmin"/></dataHost></mycat:schema>

<property name="schemas">TESTGDB,TESTMDB</property>4、 【mycar-server-01】修改用户的文件:vim /usr/local/mycat/conf/server.xml;

5、 【mycar-server-01】启动 mycat 服务:/usr/local/mycat/bin/mycat console;6、 【mysql-server-01】进行 mycat 测试;

· 登录管理界面:mysql -uroot -p123456 -h192.168.122.190 -P9066;

|- 查看所有的数据库:show @@database ;

· 如果要进行数据操作必须指明要具体操作的数据库是那一个:

|- 登录 TESTMDB 数据库:mysql -uroot -p123456 -h192.168.122.190 -P8066 -DTESTMDB;

|- 登录 TESTGDB 数据库:mysql -uroot -p123456 -h192.168.122.190 -P8066 -DTESTGDB;

3、总结

从整体来讲垂直分库对 Mycat 而言并没有做到很复杂,主要的特点是可以利用 Mycat 的垂直分库实现一个数据库的高可用机制,如果你不使用高可用机制,垂直分库的意义并不大。


以上是关于mycat:垂直分库的主要内容,如果未能解决你的问题,请参考以下文章

Mycat+分库分表

MyCAT+MySQL 搭建高可用企业级数据库集群——第4章 MyCat进阶实战至垂直分库

mycat 垂直分库与水平分表使用详解

mycat-分库分表

Mycat 读写分离+分库分表

MyCat分库分表-练习