码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MySQL运维4-Mycat入门


    合集 - mysql(39)
    1.侯哥的Python分享2019-04-162.MySQL基础1-关系型数据库与非关系型数据库2022-03-173.MySQL基础2-数据库及表的操作2022-03-174.MySQL基础3-数据库增删改操作2022-03-175.MySQL基础4-数据查询2023-07-176.MySQL基础5-用户及权限管理2023-07-187.MySQL基础6-常用数据库函数2023-07-188.MySQL基础7-约束2023-07-209.MySQL基础8-多表查询2023-07-2110.MySQL基础9-事务基础2023-08-3111.MySQL高级1-存储引擎2023-07-2412.MySQL高级2-SQL性能分析2023-07-2713.MySQL高级3-索引的结构和分类2023-07-2714.MySQL高级4-索引的使用规则2023-07-2815.MySQL高级5-SQL优化2023-07-3116.MySQL高级6-视图2023-07-3117.MySQL高级7-存储过程2023-08-1418.MySQL高级8-触发器2023-08-1719.MySQL高级9-锁2023-09-0420.MySQL高级10-InnoDB引擎存储架构2023-09-1921.MySQL高级11-后台进程2023-09-2022.MySQL高级12-事务原理 2023-09-2023.MySQL高级13-MySQL管理工具2023-09-2124.MySQL运维1-日志2023-09-2525.MySQL运维2-主从复制2023-09-2726.MySQL运维3-分库分表策略2023-12-12
    27.MySQL运维4-Mycat入门2023-12-14
    28.MySQL运维5-Mycat配置2023-12-1429.MySQL运维6-Mycat分库分表之垂直分库2023-12-1730.MySQL运维7-Mycat分库分表之取模分片2023-12-1831.MySQL运维8-Mycat分库分表之范围分片2023-12-1832.MySQL运维9-Mycat分库分表之枚举分片2023-12-1833.MySQL运维10-Mycat分库分表之一致性哈希分片2023-12-1934.MySQL运维11-Mycat分库分表之应用指定分片2023-12-1935.MySQL运维12-Mycat分库分表之按天分片2023-12-2036.MySQL运维13-Mycat分库分表之按月分片2023-12-2037.MySQL运维14-管理及监控工具Mycat-web的安装配置2023-12-2138.MySQL运维15-一主一从读写分离2023-12-2539.MySQL运维16-双主双从读写分离2023-12-25
    收起

    阅读目录

    • 一、mycat概述
    • 二、准备测试环境
    • 三、Mycat文件目录
    •  四、mycat逻辑结构
    •  五、mycat小案例

    一、mycat概述

      mycat是阿里巴巴企业下的开源的,基于JAVA语言编写的MySQL数据库中间件,可以像使用MySQL一样来使用Mycat,对于开发人员来说根本感觉不到mycat的存在。之前在国内使用数据库分库分表,读写分离最主流的就是使用mycat,但是截止到今日2023-12-13日,mycat的网站的下载链接已经不能打开了,不知道是服务器暂时出问题,还是没有人维护了,以后都不在支持更新下载了,但是作为曾经的主流中间件,我个人觉得还是有必要学习一下。我之前保留了Mycat1.6的linux版本现在分享给大家

      mycat1.6: 链接: https://pan.baidu.com/s/1fq8LddDexRBqzBhZi4760Q 提取码: hjif

      JDK8: 链接: https://pan.baidu.com/s/1sQhSR5GgmxB3STpihOqCAw 提取码: 0b6l

      mysql-connector的jar包:链接: https://pan.baidu.com/s/1kxhqT8eB-V5Az5qpxT8nhw 提取码: 23pu

       

      

    二、准备测试环境

      2.1 JDK 安装

        因为mycat是基于JAVA语言编写的,所以在安装mycat的时候,需要先安装JDK,mycat需要的JDK8,可以使用我给的JDK链接下载后安装,也可以直接在线安装。

        在线安装指令:yum install java-1.8.0-openjdk* -y (基于centos7上的安装)

        安装好之后,运行 java -version,看到一下输出表示安装成功

    [root@localhost centos7]# java -version
    openjdk version "1.8.0_392"
    OpenJDK Runtime Environment (build 1.8.0_392-b08)
    OpenJDK 64-Bit Server VM (build 25.392-b08, mixed mode)

      2.2 MySQL服务器准备

        因mycat主要功能有分库分表和读写分离,所以至少需要准备两台具有mysql(8.0.27)服务的服务器,这里我准备了三台测试服务器.

        服务器1:192.168.3.90 安装了JDK8, MySQL-8.0.27

        服务器2:192.168.3.91 安装了JDK8, MySQL-8.0.27,mycat1.6

        服务器3:192.168.3.92 安装了JDK8, MySQL-8.0.27

        说明服务器1和服务器3作为mysql服务器使用,服务器2即作为mysql服务器使用,也作为mycat服务器使用。

        

       2.3 Mycat准备

        将下载好的 Mycat-server-1.6.7.3-release-20210913163959-linux.tar.gz 和 mysql-connector-java-8.0.27.jar 放在192.168.3.91服务器的 /usr/local/下

        

         解压 Mycat : tar -zxvf Mycat-server-1.6.7.3-release-20210913163959-linux.tar.gz    

        

        解压之后就会有一个mycat文件夹

    三、Mycat文件目录

      进入到mycat文件夹,可以看到里面有5个文件夹一个版本说明的文件

      

    • bin: 存放可执行文件,用于启动停止mycat
    • conf: 存放mycat的配置文件
    • lib: 存放mycat的项目依赖包(jar包)
    • logs: 存放mycat的日志文件

      说明:因为Mycat1.6 默认的mysql连接器是是mysql5+的版本,现在我的mysql版本都是8+的,所以需要将mycat的mysql连接器替换一下,而替换的文件,就是我给大家下载的mysql-connector-java-8.0.27.jar,这是mysql8+的的连接器。

      替换步骤,首先进入到mycat的lib文件中找到:mysql-connector-java-5.1.35.jar ,然后删除,在将我给大家的 mysql-connector-java-8.0.22.jar 复制进来

      

      

      注意:复制的这个进入是没有执行权限了,需要给mysql-connector-java-8.0.27.jar 增加执行权限:chmod 777 mysql-connector-java-8.0.27.jar

      

     

     四、mycat逻辑结构

      

      说明:mycat只做逻辑处理,并不保存数据,其真实数据仍然是保存在mysql数据库中的。

     

     五、mycat小案例

      5.1 需求

        现有tb_order数据表,表中数据量很大,磁盘IO及容量都达到瓶颈,现在需要对tb_order表进行数据分片,分为三个数据节点,每个节点主机位于不同的服务器上,在dataNode1,dataNode2和dataNode3中TB_ORDER的表结构一样,保存的数据不一样,即采用水平分表的策略保存数据。结构如下:  

        

      5.2 创建数据库

        原始数据库:里面处理系统创建的数据库外,没有任何自己创建的数据库。

        

        现在需要根据需求在每个服务器上都创建db01数据库

        

      5.3 mycat分片配置schema.xml

        在mycat中做分片配置的主要是在conf文件夹下面的schema.xml中配置,里面有关于逻辑库、逻辑表、数据节点、节点主机、分片规则等配置。

        

         修改后的schema.xml如下

        

      5.4 mycat 用户及权限配置server.xml

        server.xml的配置比较多,我们只需要更改其中user的部分

         

      5.5 mycat 启动

        切换到mycat的安装目录中的bin文件夹下,执行如下指令 ./mycat start (启动) 和 ./mycat stop (停止),mycat 默认端口 8066

        

        注意:我们要想判断mycat是否启动成功可以使用 tail -f /usr/local/mycat/logs/wrapper.log 查看日志,如果日志中出现"MyCAT Server startup successfully. see logs in logs/mycat.log" 则说明启动成功

      5.6 mycat 登录

        登录指令:mysql -h 192.168.3.91 -P 8066 -uroot -p, 这个指令是和普通的mysql数据库连接是一样的,所以使用mycat对程序员来说是无感的。

        

        然后创建TB_ORDER表,这是报了一个错误:ERROR 1105 (HY000): backend connect: java.lang.IllegalArgumentException: Invalid DataSource:0

        

        这里报的错误未必就是其具体的错误描述,至于到底是什么错误,需要我们去看一下mycat.log中的具体问题

        

        这个错误表明数据库服务器在192.168.3.30上因为连接错误被阻止了。你可能在某个地方有一台尝试连接到这个数据库服务器的设备或应用程序,导致了连接错误。需要使用mysqladmin -u root -p flush-hosts 解除阻止就行了。

        

        注意:mysqladmin是mysql的指令,需要进入到mysql安装目录下的bin目录下,或者将该指令添加到了环境变量中,方可直接使用。

          

        在此创建表,即可成功

        

        

      关于mycat小案例,启动mycat,使用mycat连接数据库,使用mycat创建表就演示到这里,后面的博客继续讲解mycat的使用

     

     

      

     

  • 相关阅读:
    广度优先遍历解决迷宫问题
    ESP32 之 ESP-IDF 教学(十九)—— 在工程或组件中嵌入二进制数据
    java:CompletableFuture的简单例子
    oracle INSERT 批量插入写法
    ZAB 协议解析:ZooKeeper分布式一致性的核心
    消息服务MNS之初见
    【FME】模板模块化组织思路
    微信小程序云开发 | 赠、删、改城市名称信息的应用实现
    Spring Data JPA @Entity之间的关联关系注解如何正确使用?
    Xcode15+iOS17适配以及遇到的问题
  • 原文地址:https://www.cnblogs.com/Se7eN-HOU/p/17897962.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号