学会数据库读写分离分表分库——用Mycat,这一篇就够了!IT米粉

下载:建议大家选择1.6-RELEASE版本,毕竟是比较稳定的版本。

Mycat的安装其实只要解压下载的目录就可以了,非常简单。安装完成后,目录如下:

Mycat的配置文件都在conf目录里面,这里介绍几个常用的文件:

Mycat作为主数据库中间件,肯定是与代码弱关联的,所以代码是不用修改的,使用Mycat后,连接数据库是不变的,默认端口是8066。连接方式和普通数据库一样,如:jdbc:mysql://192.168.0.2:8066/

server.xml

示例

我这里配置了一个账号test密码也是test,针对数据库lunch,读写权限都有,没有针对表做任何特殊的权限。

schema.xmlschema.xml是最主要的配置项,首先看我的配置文件。

schema:

table:

dataNode

dataHost

配置如下:

id mod-long 2 数据库读写分离配置如下:

注意:Mycat主从分离只是在读的时候做了处理,写入数据的时候,只会写入到writehost,需要通过mycat的主从复制将数据复制到readhost,这个问题当时候我纠结了好久,数据写入writehost后,readhost一直没有数据,以为是自己配置的问题,后面才发现Mycat就没有实现主从复制的功能,毕竟数据库本身自带的这个功能才是最高效稳定的。

至于其他的场景,如同时主从和分表分库也是支持的了,只要了解这个实现以后再去修改配置,都是可以实现的。而热备及故障专业官方推荐使用haproxy配合一起使用,大家可以试试。

Mycat的启动也很简单,启动命令在Bin目录:

##启动mycatstart##停止mycatstop##重启mycatrestart如果在启动时发现异常,在logs目录中查看日志。

mycat启动后,执行命令不成功,可能实际上配置有错误,导致后面的命令没有很好的执行。

Mycat带来的最大好处就是使用是完全不用修改原有代码的,在mycat通过命令启动后,你只需要将数据库连接切换到Mycat的地址就可以了。如下面就可以进行连接了:

mysql-h192.168.0.1-P8806-uroot-p123456连接成功后可以执行sql脚本了。所以,可以直接通过sql管理工具(如:navicat、datagrip)连接,执行脚本。我一直用datagrip来进行日常简单的管理,这个很方便。

Mycat还有一个管理的连接,端口号是9906.

mysql-h192.168.0.1-P9906-uroot-p123456连接后可以根据管理命令查看Mycat的运行情况,当然,喜欢UI管理方式的人,可以安装一个Mycat-Web来进行管理,有兴趣自行搜索。

简而言之,开发中使用Mycat和直接使用Mysql机会没有差别。

使用Mycat后总会遇到一些坑,我将自己遇到的一些问题在这里列一下,希望能与大家有共鸣:

Mycat是不是配置以后,就能完全解决分表分库和读写分离问题?Mycat配合数据库本身的复制功能,可以解决读写分离的问题,但是针对分表分库的问题,不是完美的解决。或者说,至今为止,业界没有完美的解决方案。分表分库写入能完美解决,但是,不能完美解决主要是联表查询的问题,Mycat支持两个表联表的查询,多余两个表的查询不支持。其实,很多数据库中间件关于分表分库后查询的问题,都是需要自己实现的,而且节本都不支持联表查询,Mycat已经算做地非常先进了。分表分库的后联表查询问题,大家通过合理数据库设计来避免。

Mycat支持哪些数据库,其他平台如.net、PHP能用吗?官方说了,支持的数据库包括MySQL、SQLServer、Oracle、DB2、PostgreSQL等主流数据库,很赞。尽量用Mysql,我试过SQLServer,会有些小问题,因为部分语法有点差异。

Mycat非JAVA平台如.net、PHP能用吗?可以用。这一点MyCat做的也很棒。

THE END
1.MyCat我的猫咪手游MyCat我的猫咪安卓预约下载最新手机正版链接MyCat我的猫咪游戏简介 游戏信息建设中 分类: 休闲益智 九游APP | 版本:8.1.13.2 | 更新时间:2024-11-06 | 权限详情 | 隐私政策 同类推荐 我的猫咪哪去了 0人预约 九游预约 我的虚拟猫咪 0人预约 九游预约 ?我的猫呢MyCat 0人预约 九游预约 我的收养猫咪 0人预约 九游预约 我的可爱猫咪 0人预约 九...https://www.wandoujia.com/download/416668/
2.Mycat2:Mycat2是Mycat社区开发的一款分布式关系型数据库(中间件...GVPMycatOne/Mycat2 加入Gitee 与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :) 免费加入 已有帐号?立即登录 main 克隆/下载 git config --global user.name userName git config --global user.email userEmail 分支142 标签58 ...https://gitee.com/MycatOne/Mycat2
3.MyCat使用教程本文以实际操作为主,理论性比较少,主要包含mycat安装,mysql主从复制,mycat垂直分库,mycat水平分表等系列操作,希望对有机会接触到mycat的朋友一些启发。 mycat安装 1、安装mysql5.7并导入数据 使用Navicat导入以下数据。 shop_db.sql 2、下载并解压mycat https://www.jianshu.com/p/32e0f2dfcaf5
4.MyCAT+MySQL搭建高可用企业级数据库集群MyCAT高可用部署 MyCAT实现MySQL读写分离 MyCAT集群架构 MyCAT管理及监控 MyCAT集群优化 MyCAT的限制及扩展 MyCAT简化数据库分片集群与部署难度 精准掌握MyCAT核心技术,改变的不仅仅是技术专业度更是你的自身价值 解决工作中数据库的高并发瓶颈 应对DBA面试中的数据库性能考察点 满足企业常见业务数据库集群处理 ...https://coding.imooc.com/class/208.html
1.域名Mycat.io待售Mycat.io 正在出售! 排列方式 Top Domain Sellers 获取此域名 现支付全数USD $ 9,988,或选择先租后买的方案 立即购买 USD $ 9,988 先租后买 USD $ 250 /月 ) ) )安全支付 买方保护计划 开始简单的转移 简单的支付 简单安全的购买域名方式 不论您想购买或出租什么类型的域名,我们都会让转移变得简单安全...http://www.mycat.io/
2.MyCatThe MyCAT projectis an open-source toolset for managing MySQL/Linux servers, and could be helpful for anyone managing a network of *nix servers, whether running MySQL Cluster, "standard" replication, or not running MySQL at all. rep_monandbinlog_monare the MySQL-centric aspects of MyCAT, ...https://mycat.sourceforge.net/
3.MyCat——安装与配置数据分库分表从这里开始,我们就是在初步搭建 MyCat 服务器。我们想要初步实现的目标:MyCat 中配置虚拟数据库、虚拟数据库表,物理库和物理表暂时不拆分 启动MyCat 使用客户端连接到 MyCat而让MyCat 连接物理库、配置虚拟库、虚拟表都需要在 schema.xml 中配置。①配置文件位置...https://blog.csdn.net/YR_112233/article/details/123546869
4.手把手教你配置SpringBoot和MyCatMyCat 是一个开源的数据库中间件,通常用于数据库分库分表的场景,具有良好的性能和可扩展性。本篇文章将手把手教你如何配置 Spring Boot 和 MyCat,帮助你搭建一个高可用、高性能的数据库架构。我们将一步步讲解如何在 Spring Boot 项目中集成 MyCat,并进行数据库路由配置。https://www.jcwlyf.com/newsContent-id-20868.html
5.Mycat无法连接MySQL的解决方法(mycat不能连接mysql)在使用Mycat作为数据库中间件时,可能会遇到无法连接到MySQL数据库的情况。这种情况通常表现为连接超时或者权限拒绝等错误信息。下面我们来分析可能导致这种情况的原因,并提供相应的解决方法。 常见原因 网络问题:Mycat与MySQL数据库服务器之间的网络连接可能存在问题。 配置错误:Mycat的配置文件可能存在错误,如数据库连接...http://mysql.zaixianjisuan.com/jiqiao/mycatwu-fa-lian-jie-mysqlde-jie-jue-fang-fa.html
6.MyCat概述与基本概念腾讯云开发者社区对于开发人员,可以这样理解 MyCat: MyCat 就是一个近似等于 MySql 的数据库库服务,你可以使用连接 MySql 的方式连接MyCat。绝大多数情况,你也可以使用常用的ORM框架连接 MyCat,但是,对于分片的表,还是建议使用标准 SQL 语句,这样能够达到最佳的性能。 https://cloud.tencent.com/developer/article/2384056
7.超Cutecat!超Cute cat! 朗维科Lanwk 黑粉可爱猫 高级玻璃背板,手感超好强磁吸充电,超方便! 按键孔位,超精准! #lanwk手机壳 #lanwk磁吸手机壳 #LANWK #我的手机壳长这样 #数码配件分享 #苹果15质感手机壳 #苹果16磁吸手机壳 朗唯科 LANWK 玻璃材质 黑粉可爱猫 防摔磁吸手机壳 适用苹果 iphone14/15/16/pro/promax...https://m.dewu.com/note/trend/details?id=251512808
8.harper权威猫主名单14.A Day in the Life of a Cat Lady: Harpers' Diary 15.The Furry Files: Exploring the World through Cats Eyes, as told by harperr. 16.harpers' Meow Musings 17.Felines and Fancy Things: A Blog by harperr. 18.Kitty Love Letters to My Furry Friend from harpper. ...https://www.kuaisup.com/jing-dian-wang-ming/890465.html
9.Mycat基础知识·MyCat入门到精通·看云先创建一个mycat用户,然后搭建jdk1.7以上版本的java环境!下载mycat并且安装,修改配置然后启动mycat。 wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz&&tar xzf oneinstack-full.tar.gz&&http://resources.sir6.cn/oneinstack/install.sh--apache_option1--tomcat_option2--jdk_option2--pureftpd...https://www.kancloud.cn/mali1711/dashuju/834658
10.Windows配置mycat这里的test是登录mycat的用户和密码 schema.xml: schema的配置应与您当地安装的mysql有关: “2”是您当地mysql的分库名称, “3”是您本地mysql的账号密码, “1”是mycat和本地mysql表的关联配置,table是表名,datanode是哪些分库中有test表。我的三个分库都有test表,所以都配置了。rule是test表的执行规则,规则...https://www.tulingxueyuan.cn/tlzx/jsp/2696.html
11.Mycat学习实战Mycat基本功能51CTO博客Mycat心跳机制通过检测 show slave status 中的 “Seconds_Behind_Master”, “Slave_IO_Running”, “Slave_SQL_Running” 三个字段来确定当前主从同步的状态以及Seconds_Behind_Master主从复制时延,当Seconds_Behind_Master>slaveThreshold时,读写分离筛选器会过滤掉此Slave机器。 http://ygqygq2.blog.51cto.com/1009869/1974299