MyCAT读写分离及实现---MySQL5.7的glibc

devtools/2024/10/18 22:04:55/

中间件代理方式的读写分离,在业务代码中,数据库的操作不直接连接数据库,而是先请求到中间件服务器(代理),由代理服务器判断是读操作去从数据服务器,写操作去主数据服务器。

中间件代理服务器,除了能够实现读写分离,还可以作为数据库集群的管理平台。

1.mycat介绍 

Mycat是一款基于阿里开源产品Cobar而研发的开源数据库分库分表中间件(基于Java语言开发)。官网所言:Mycat国内最活跃的、性能最好的开源数据库中间件!

  • 一个彻底开源的,面向企业应用开发的大数据库集群
  • 支持事务、ACID、可以替代MySQL的加强版数据库
  • 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群
  • 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server
  • 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
  • 一个新颖的数据库中间件产品

2.mycat读写分离实现

提前做好数据库的主从复制,以及mycat的环境准备。

角色ip功能
master_mysql192.168.1.15写数据,数据库的增删改查
slave_mysql192.168.1.16读数据
mycat192.168.1.17读写分离

 1.安装jdk

1.下载

下载地址:https://www.oracle.com/technetwork/java/javase/do wnloads/jdk8-downloads-2133151.html

将下载好的mycat和jdk安装包上传到指定目录

[root@mycat ~]# ls
anaconda-ks.cfg  jdk-8u192-linux-x64.tar.gz
initserver.sh    Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
2.解压
[root@mycat ~]# tar -xf jdk-8u192-linux-x64.tar.gz
[root@mycat ~]# tar -xf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
3.将解压后的文件放到指定目录
[root@mycat ~]# cp -r jdk1.8.0_192/ /usr/local/jdk
[root@mycat ~]# cp -r mycat/ /usr/local/

2.配置环境变量

1.追加环境变量
[root@mycat ~]# sed -i '$aexport JAVA_HOME=/usr/local/jdk' /etc/profile
[root@mycat ~]# source /etc/profile
[root@mycat ~]# $JAVA_HOME
-bash: /usr/local/jdk: 是一个目录
[root@mycat ~]# sed -i '$aexport PATH=$PATH:$JAVA_HOME/bin' /etc/profile
[root@mycat ~]# source /etc/profile
[root@mycat ~]# $PATH
-bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/jdk/bin: 没有那个文件或目录
2.检测java环境 
[root@mycat ~]# java -version
java version "1.8.0_192"
Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode)
3.启动控制台mycat
​
[root@mycat ~]# /usr/local/mycat/bin/mycat console   #出现以下界面则表示启动成功
Running Mycat-server...
wrapper  | --> Wrapper Started as Console
wrapper  | Launching a JVM...
jvm 1    | Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=64M; support was removed in 8.0
jvm 1    | Wrapper (Version 3.2.3) Home - Java Service Wrapper
jvm 1    |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
jvm 1    |
jvm 1    | log4j:WARN No appenders could be found for logger (io.mycat.memory.MyCatMemory).
jvm 1    | log4j:WARN Please initialize the log4j system properly.
jvm 1    | log4j:WARN See Apache log4j 1.2 - Frequently Asked Technical Questions for more info.
jvm 1    | MyCAT Server startup successfully. see logs in logs/mycat.log​

找到分离文件

[root@mycat ~]# ls /usr/local/mycat/conf/

4.配置xml文件
[root@mycat ~]# vim /usr/local/mycat/conf/server.xml    进入找到93行

[root@mycat ~]# vim /usr/local/mycat/conf/schema.xml     #真实mysql,删除table标签

5.启动mycat
[root@mycat ~]# /usr/local/mycat/bin/mycat  start
Starting Mycat-server...
[root@mycat ~]# netstat -anput |grep 8066

启动不成功,查看日志发现是xml文件中出现了不允许出现的字符"__"

[root@mycat ~]# vim /usr/local/mycat/logs/wrapper.log
INFO   | jvm 1    | 2024/08/15 16:35:08 |       at io.mycat.config.MycatConfig.<init>(MycatConfig.java:72)
INFO   | jvm 1    | 2024/08/15 16:35:08 |       at io.mycat.MycatServer.<init>(MycatServer.java:170)
INFO   | jvm 1    | 2024/08/15 16:35:08 |       at io.mycat.MycatServer.<clinit>(MycatServer.java:116)
INFO   | jvm 1    | 2024/08/15 16:35:08 |       ... 7 more
INFO   | jvm 1    | 2024/08/15 16:35:08 | Caused by: org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 45; 注释中不允许出现字符串 "--"。
INFO   | jvm 1    | 2024/08/15 16:35:08 |       at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
INFO   | jvm 1    | 2024/08/15 16:35:08 |       at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
INFO   | jvm 1    | 2024/08/15 16:35:08 |       at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)

修改错误之后重新启动

[root@mycat ~]# /usr/local/mycat/bin/mycat  start
Starting Mycat-server...
[root@mycat ~]# netstat -anput |grep 8066
tcp6       0      0 :::8066                 :::*                    LISTEN      5109/java 
6.测试
[root@client ~]# cd mysql-5.7.44-linux-glibc2.12-x86_64/
[root@client mysql-5.7.44-linux-glibc2.12-x86_64]# ls
bin  docs  include  lib  LICENSE  man  README  share  support-files
[root@client mysql-5.7.44-linux-glibc2.12-x86_64]# cd bin/
[root@client bin]# ./mysql -h192.168.1.17 -P8066 -uqingtang -pqingtang


http://www.ppmy.cn/devtools/97044.html

相关文章

SpringBoot MySQL BinLog 监听数据变化(多库多表)

开始 1&#xff1a;引入mysql-binlog-connector-java.jar <!-- binlog --><dependency><groupId>com.zendesk</groupId><artifactId>mysql-binlog-connector-java</artifactId><version>0.27.1</version></dependency>…

使用DOM破坏启动xss

目录 实验环境&#xff1a; 分析&#xff1a; 找破坏点&#xff1a; 查看源码找函数&#xff1a; 找到了三个方法&#xff0c;loadComments、escapeHTM 、displayComments loadComments escapeHTM displayComments&#xff1a; GOGOGO 实验环境&#xff1a; Lab: Exp…

前端面试——js作用域

说一说JS的作用域吧 作用域的分类 作用域分为&#xff1a;全局作用域&#xff0c;函数作用域&#xff0c;块级作用域 作用域的特性 全局作用域&#xff1a; 能够让变量和函数在全局位置访问&#xff0c;其挂载在浏览器的window对象下面 其中var定义的变量和function函数存…

品牌出海新策略:携手TikTok达人,合作孵化IP实现双赢

在当今数字化时代&#xff0c;TikTok达人的IP孵化作为一种创新的合作模式&#xff0c;正逐渐成为品牌出海的新兴策略。通过与有潜力的TikTok达人合作&#xff0c;共同孵化新的IP&#xff0c;品牌不仅能够突破传统营销的局限&#xff0c;还能实现与达人共同成长的双赢局面。本文…

P1587 [NOI2016] 循环之美

[题目通道]([NOI2016] 循环之美 - 洛谷) #include<map> #include<cmath> #include<cstdio> #include<algorithm> #define fp(i,a,b) for(int ia,Ib;i<I;i) #define file(s) freopen(s".in","r",stdin),freopen(s".out&qu…

Go Channel 详解

概述 在 Go 语言中&#xff0c;channel 是一种用于在 goroutine 之间传递数据的机制。它提供了同步和通信的能力&#xff0c;使得并发编程变得更加简单和安全。Channel 在 Go 语言中的设计是类型安全的&#xff0c;并且支持发送和接收两种操作。 基本概念 创建通道 创建一个…

HTML组件上传

<!doctype html> <html> <head> <meta charset"utf-8"> <title>无标题文档</title> </head><fieldset style"width: 200px"><legend>文本组建上传</legend><form action"#" me…

【论文阅读】Enhance Model Stealing Attack via Label Refining(2022)

摘要 With machine learning models(机器学习模型) being increasingly(越来越多) deployed(部署), model stealing attacks(模型窃取攻击) have raised an increasing interest. Extracting decision-based models(基于决策的模型窃取) is a more challenging task…