文档章节

使用mycat实现数据库的分库分表

阿dai
 阿dai
发布于 2017/09/02 20:16
字数 802
阅读 192
收藏 0
点赞 0
评论 0

使用mycat实现数据库的分库分表

准备工作:

安装mysql5.6:https://my.oschina.net/u/3497124/blog/1488479
安装Java1.8:https://my.oschina.net/u/3497124/blog/1525269

安装&配置mycat

安装mycat

软件下载地址:http://pan.baidu.com/s/1kUEwy39 (在此使用1.6版本)

[root@localhost src]# tar zxvf Mycat-server-1.6-RELEASE-20161012170031-linux.tar.gz

[root@localhost src]# ls
jdk-8u144-linux-x64.gz  Mycat-server-1.3.0.3-alpha-20150211194835-linux.tar.gz
mycat                   Mycat-server-1.6-RELEASE-20161012170031-linux.tar.gz

[root@localhost src]# mv mycat /usr/local

创建mycat用户:
[root@localhost src]# useradd mycat

更改权限:
[root@localhost src]# chown -R mycat:mycat /usr/local/mycat  

[root@localhost src]# cd /usr/local/mycat/

配置mycat

编辑mycat配置文件:

[root@localhost mycat]# vim conf/schema.xml   
搜索“datahost”
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
                          writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                <!-- can have multi write hosts -->
                <writeHost host="hostM1" url="localhost:3306" user="root"
                                   password="123456">
                        <!-- can have multi read hosts -->
                        <readHost host="hostS2" url="localhost:3306" user="root" password="123456" />
                </writeHost>
                <writeHost host="hostS1" url="localhost:3316" user="root"
                                   password="123456" />
                <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
        </dataHost>

说明: 在此设置writeHost、readHost中的url、user、password与本机一致。

配置mycat的用户名和密码:

[root@localhost mycat]# vim conf/server.xml
……
<user name="mycat1">
                <property name="password">123456</property>
                <property name="schemas">TESTDB</property>
</user>

说明: 这里设定了一个mycat1的租户,密码为123456,这个标签用来框定shema的配置范围(TEWTDB)。

启动mycat

[root@localhost mycat]# /usr/local/mycat/bin/mycat start
Starting Mycat-server...

[root@localhost mycat]# ps aux |grep mycat
root      3670  0.4  0.0  17808   752 ?        Sl   19:01   0:00 /usr/local/mycat/bin/./wrapper-linux-x86-64 /usr/local/mycat/conf/wrapper.conf wrapper.syslog.ident=mycat wrapper.pidfile=/usr/local/mycat/logs/mycat.pid wrapper.daemonize=TRUE wrapper.lockfile=/var/lock/subsys/mycat

[root@localhost mycat]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1361/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2185/master         
tcp        0      0 127.0.0.1:32000         0.0.0.0:*               LISTEN      3672/java           
tcp6       0      0 :::9066                 :::*                    LISTEN      3672/java           
tcp6       0      0 :::3306                 :::*                    LISTEN      2503/mysqld         
tcp6       0      0 :::22                   :::*                    LISTEN      1361/sshd           
tcp6       0      0 :::39288                :::*                    LISTEN      3672/java           
tcp6       0      0 ::1:25                  :::*                    LISTEN      2185/master         
tcp6       0      0 :::1984                 :::*                    LISTEN      3672/java           
tcp6       0      0 :::39809                :::*                    LISTEN      3672/java           
tcp6       0      0 :::8066                 :::*                    LISTEN      3672/java       

连接MySQL

[root@localhost mycat]# mysql -uroot -p123456 -h127.0.0.1 -P8066 -DTESTDB  
Welcome to the MySQL monitor.

至此搭建完成,相关应用后续研究…

注意: 这里-h后面必须是ip,使用localhost会出错。

测试

创建一个表:
mysql> create table employee (id int not null primary key,name varchar(100),sharding_id int not null);
ERROR 3009 (HY000): java.lang.IllegalArgumentException: Invalid DataSource:0(无效的数据源,该错误不影响后续操作)

查看该SQL被发往哪些分片节点执行:
mysql> explain create table employee (id int not null primary key,name varchar(100),sharding_id int not null);
+-----------+------------------------------------------------------------------------------------------------+
| DATA_NODE | SQL                                                                                            |
+-----------+------------------------------------------------------------------------------------------------+
| dn1       | create table employee (id int not null primary key,name varchar(100),sharding_id int not null) |
| dn2       | create table employee (id int not null primary key,name varchar(100),sharding_id int not null) |
+-----------+------------------------------------------------------------------------------------------------+
2 rows in set (0.01 sec)

说明: explain可以用于任何正确的SQL上,其作用是告诉你,这条SQL会路由到哪些分片节点上执行,这对于诊断分片相关的问题很有帮助。另外,explain可以安全的执行多次,它仅仅是告诉你SQL的路由分片,而不会执行该SQL。由上可知在TESTDB创建employee表的同时也在dn1、dn2同步创建了employee表。

参考:
安装指南: http://code.taobao.org/svn/openclouddb/doc/

http://blog.csdn.net/jaysonhu/article/details/52858535

© 著作权归作者所有

共有 人打赏支持
阿dai
粉丝 57
博文 177
码字总数 253317
作品 0
昌平
运维
MySQL多数据源笔记4-Mycat中间件实战

Mycat 是数据库中间件,就是介于数据库与应用之间,进行数据处理与交互的中间服 务。由于前面讲的对数据进行分片处理之后,从原有的一个库,被切分为多个分片数据库,所有的分片数据库集 群构...

狂小白 ⋅ 03/18 ⋅ 0

mycat实现mysql分库分表

1. mycat介绍 MyCat发展到目前的版本,已经不是一个单纯的MySQL代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流数据库,也支持MongoDB这种新型NoSQL方式的存储,...

红隐 ⋅ 05/06 ⋅ 0

使用MyCAT实现MySQL的分库分表、读写分离、主从切换

MyCAT及MySQL实例部署情况: MyCAT: IP:10.20.8.57,Port:3310/3311 MySQL : db1-M1,IP:10.20.8.126,Port:3306 db1-M2,IP:10.20.8.126,Port:3307 db2-M1,IP:10.25.80.7,Port:......

橡皮高 ⋅ 05/08 ⋅ 0

Mycat读写分离以及拆库拆表综合实验2:部署配置mycat读写分离与拆库拆表

部署 mycat mycat基于java运行,检查java版本 配置java变量 mycat下载地址 大致架构图 核心概念 schema:由多个数据库组成的逻辑数据库 datanode:将数据切分后,一个大表被分配到不同的分片数...

Mathology ⋅ 05/24 ⋅ 0

myCat schema.xml详解

schema.xml 是mycat重要的配置文件之一,管理者mycat的逻辑库、表、分片规则、DataNode以及DataSource。想要了解使用mycat就要弄清楚schema里面的标签含义,下面将介绍一下schema里面的详细内...

WJXing ⋅ 05/22 ⋅ 0

高性能Mysql中间组件Mycat安装配置

高性能Mysql中间组件Mycat安装配置 由于公司项目需要使用到读写分离,但是官方版本的Mysql-proxy读写分离组件太不稳定且有很多BUG,最终决定使用Mycat作为中间组件,其实读写分离只是Mycat中...

幸运券发放 ⋅ 05/02 ⋅ 0

Mysql数据库开发之mycat分表分库如何做?

Mycat分表分库虽然能解决大表对数据库系统的压力,但也有一些不利,因此Mycat分表分库要先解决的问题是,分不分库,分哪些库,什么规则分,分多少分片。那么究竟是怎么分的呢? 1、能不分就不...

老男孩Linux培训 ⋅ 05/31 ⋅ 0

使用mycat实现mysql读写分离

使用mycat实现mysql读写分离 mycat在数据层的作用和nginx在应用层很像,都是代理后面实际的服务。mycat实现了mysql协议,对外看起来就是一个mysql数据库,可以和使用普通mysql一样进行操作 ...

肥肥小浣熊 ⋅ 05/06 ⋅ 0

Mycat分表分库怎么分?Mysql DBA学习

Mycat分表分库虽然能解决大表对数据库系统的压力,但也有一些不利,因此Mycat分表分库要先解决的问题是,分不分库,分哪些库,什么规则分,分多少分片。那么究竟是怎么分的呢? 1、能不分就不...

mo默瑶 ⋅ 05/31 ⋅ 0

Mycat读写分离笔记Windows

Mycat读写分离笔记Windows 自己搭了一个运用Mycat中间件搭建了一个读写分离的demo,昨晚还在奋战当中,因为连接mycat的时候老是报错:No Mycat DataBases selected.尝试了很多的方法,然后还...

推荐码发放 ⋅ 04/29 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Kubeflow实战系列:利用TFJob导出分布式TensorFlow模型

介绍 本系列将介绍如何在阿里云容器服务上运行Kubeflow, 本文介绍如何使用TfJob导出分布式模型训练模型。 第一篇:阿里云上使用JupyterHub 第二篇:阿里云上小试TFJob 第三篇:利用TFJob运行...

全部原谅 ⋅ 8分钟前 ⋅ 0

007. 深入JVM学习—老年代

老年代空间的主要目的是用于存储由Eden发送来的对象,一般在经历好几次“Minor GC”还会保存下来的对象,才会被复制到老年代,这样就可以存放更多的对象,同时在老年代中执行GC的次数也相对较...

影狼 ⋅ 9分钟前 ⋅ 0

常见的一些C#开源框架或者开源项目

原:https://blog.csdn.net/qq_27825451/article/details/70666044 Json.NET http://json.codeplex.com/ Json.Net 是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更......

whoisliang ⋅ 10分钟前 ⋅ 0

设计模式基本原理

刚开始接触编程这行的时候看过设计模式,当时感觉学这些模式没有太大的用处,当时也看不太懂。但是随着慢慢接触这一行,经过一段时间的编程以后,再回过头来看设计模式,发现设计模式的确是太...

王子城 ⋅ 13分钟前 ⋅ 0

阿里云全面支持IPv6!一文揽尽4位大咖精彩演讲

摘要: 自从去年11月以来,阿里巴巴高度重视数据中心的网络改造、云产品改造、应用及网络改造等多个维度,经过半年以来的建设,阿里云已经完成了域名解析等关键产品的分析,现在阿里云已经完...

传授知识的天使 ⋅ 24分钟前 ⋅ 0

windows Android sdk 配置

1、下载Android SDK,点击安装,直接默认路径即可! 下载地址:http://developer.android.com/sdk/index.html 2、默认路径安装后,安装完成,开始配置环境变量。 3、打开计算机属性——高级系...

阿豪boy ⋅ 27分钟前 ⋅ 0

bash shell script 简明教程

User <--> bash <--> kernel shell is not kernel or part of kernel various shells: tcsh, csh, bash, ksh find the using shell: echo $SHELL find all the shells: cat /etc/shells what......

mskk ⋅ 29分钟前 ⋅ 0

Service Mesh简史

William Morgan Service Mesh是一个相当新的概念,讲它的“历史”似乎有些勉强。就目前而言,Service Mesh已经在部分企业生产环境中运行了超过18个月,它的源头可以追溯到2010年前后互联网公...

好雨云帮 ⋅ 29分钟前 ⋅ 0

10个免费的服务器监控工具

监控你的WEB服务器或者WEB主机运行是否正常与健康是非常重要的。你要确保用户始终可以打开你的网站并且网速不慢。服务器监控工具允许你收集和分析有关你的Web服务器的数据。 有许多非常好的服...

李朝强 ⋅ 42分钟前 ⋅ 0

压缩工具之zip-tar

zip 支持目录压缩。使用yum安装zip包,使用yum安装unzip包 zip 1.txt.zip 1.txt #将1.txt文件压缩,新生成的压缩文件为1.txt.zip,原文件保留 zip -r 123.zip 123/ #-r对目录操作。将123/目录...

ZHENG-JY ⋅ 42分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部