【MySQL集群二】使用MyCat和ProxySql代理MySQL集群

中间件代理MySQL

  • MyCat
    • 安装MyCat
      • 介绍:
      • 步骤1:安装Java环境
      • 步骤2:下载并解压Mycat
      • 步骤3:配置Mycat
      • 步骤4:启动Mycat
  • ProxySql
    • 安装ProxySql
      • 介绍:
      • 步骤1:更新系统
      • 步骤2:安装ProxySQL
      • 步骤3:配置ProxySQL
      • 步骤4:启动ProxySQL
      • 步骤5:使用ProxySQL

MyCat

在这里插入图片描述

安装MyCat

介绍:

Mycat是一个开源的数据库中间件,用于提供高可用性、负载均衡和分片能力。

步骤1:安装Java环境

首先,您需要在服务器上安装Java环境。打开终端,运行以下命令:

sudo yum install java-1.8.0-openjdk-devel

步骤2:下载并解压Mycat

  1. 在Mycat官方网站下载最新版本的Mycat压缩包,网址:Mycat官方网站或直接在服务器上使用wget命令下载:
# 下载Mycat压缩包
wget http://dl.mycat.org.cn/2.0/install-template/mycat2-install-template-1.21.zip
  1. 在终端中进入您下载的目录,运行以下命令解压文件:
tar -zxvf mycat2-install-template-1.21.zip

在使用tar解压时可能会出现下面错误,是因为文件中包含了多个压缩包:
在这里插入图片描述
解决方法:使用 unzipp7zip 解压。

unzip mycat2-install-template-1.21.zip

步骤3:配置Mycat

  1. 进入解压后的Mycat目录:
cd mycat/lib/
  1. 下载依赖包或把下载好的依赖包复制到目录下:
# 直接下载依赖包
wget http://dl.mycat.org.cn/2.0/1.21-release/mycat2-1.21-release-jar-with-dependencies.jar
# 复制
cp mycat2-1.21-release-jar-with-dependencies.jar mycat/lib/
  1. 编辑 conf 目录下的 server.xml 配置文件:
vim mycat/conf/datasources/prototypeDs.datasource.json
  1. 将mysql连接配置成master数据库,需要修改的只有urluserpassword
{"dbType":"mysql","idleTimeout":60000,"initSqls":[],"initSqlsGetConnection":true,"instanceType":"READ_WRITE","maxCon":1000,"maxConnectTimeout":3000,"maxRetryCount":5,"minCon":1,"name":"prototypeDs","password":"Ddz@5201413","type":"JDBC","url":"jdbc:mysql://114.132.156.12:3306/ddz_test?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8","user":"root","weight":0
}

输入:wq!保存退出。

步骤4:启动Mycat

  1. mycat/bin/ 目录下使用以下命令启动Mycat服务器:
sh mycat start

可能会出现启动失败的情况:
在这里插入图片描述
原因是wrapper-linux-x86-64和wrapper-linux-x86-32这两个文件权限设置不正确。

# 查看文件权限
ls -l /home/mycat/bin/./wrapper-linux-x86-64  
ls -l /home/mycat/bin/./wrapper-linux-x86-32
# 设置文件权限
chmod +x /home/mycat/bin/./wrapper-linux-x86-64  
chmod +x /home/mycat/bin/./wrapper-linux-x86-32
或给/bin文件赋权限
chmod -R 777 bin/

设置完后进入mycat/bin/目录执行启动命令:

cd mycat/bin/
./mycat start
  1. 确认Mycat顺利启动后,使用以下命令查看Myat进程是否正在运行:
ps -ef | grep mycat

在这里插入图片描述

步骤5:连接并测试Mycat

  1. 使用MySQL客户端连接到Mycat服务器,示例:
mysql -h114.132.156.12 -P8066 -uroot -p
  1. 输入密码后成功连接到Myat服务器,可以执行SQL语句进行测试。

结论:
通过按照以上步骤,在CentOS 7上成功安装和配置Mycat,并能够连接并测试Mycat服务器。这将为您的数据库管理提供高可用性、负载均衡和分片能力,提高数据库的效率和性能。

ProxySql

安装ProxySql

介绍:

ProxySQL是一个高性能的MySQL代理服务器,用于负载均衡、故障转移和查询过滤。在本篇博客中,我们将讲解如何在CentOS 7.9上安装和配置ProxySQL。

步骤1:更新系统

首先,使用以下命令更新系统上的所有软件包:

sudo yum update

步骤2:安装ProxySQL

添加ProxySQL的软件仓库:

sudo yum install -y https://github.com/sysown/proxysql/releases/download/v2.5.0/proxysql-2.5.0-1-centos7.x86_64.rpm

安装proxysql软件包:

sudo yum install proxysql

步骤3:配置ProxySQL

编辑ProxySQL配置文件:

sudo vi /etc/proxysql/proxysql.cnf

mysql_servers节中添加MySQL后端的详细信息:

mysql_servers =
({ address = '127.0.0.1', port = 3306, hostgroup = 10, max_connections = 100, max_replication_lag = 5, use_ssl = 0 }
)

步骤4:启动ProxySQL

启动ProxySQL服务:

sudo systemctl start proxysql
sudo systemctl enable proxysql

步骤5:使用ProxySQL

连接到ProxySQL管理员命令行界面:

mysql -u admin -p -h 127.0.0.1 -P 6032 --prompt='ProxySQLAdmin>'

在ProxySQL管理员命令行界面上配置用户、主机和端口映射:

INSERT INTO mysql_users (username, password, default_hostgroup) VALUES ('user', 'password', 10);
LOAD MYSQL USERS TO RUNTIME;
SAVE MYSQL USERS TO DISK;
INSERT INTO mysql_servers (hostgroup_id, hostname, port) VALUES (10, '127.0.0.1', 3306);
LOAD MYSQL SERVERS TO RUNTIME;
SAVE MYSQL SERVERS TO DISK;
INSERT INTO mysql_query_rules (active, match_pattern, destination_hostgroup) VALUES (1, '^SELECT.*', 10);
LOAD MYSQL QUERY RULES TO RUNTIME;
SAVE MYSQL QUERY RULES TO DISK;

现在,您可以使用ProxySQL代理MySQL查询了。

结论:
在CentOS 7.9上安装ProxySQL代理MySQL是一个简单的过程,只需按照本文的步骤进行操作即可。使用ProxySQL可以提高MySQL服务器的负载均衡和故障转移能力,同时还能对查询进行过滤和重定向。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/86302.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pytorch源码编译Libtorch

创建虚拟环境: conda create -n build-libtorch python3.8 cd build-libtorch安装相关依赖: conda install astunparse numpy ninja pyyaml mkl mkl-include setuptools cmake cffi typing_extensions future six requests dataclasses下载 Pytorch&am…

微信小程序快速入门01(含案例)

文章目录 前言一、组件1.常用视图容器类组件viewscroll-viewswiper、swiper-item 2.text、rich-text3.其他常用组件buttonimagenavigator 二、小程序API三、数据绑定1.定义页面数据2.绑定数据 四、事件绑定1.什么是事件2.小程序中常用的事件3.事件对象 的属性列表target和curre…

详解Renko图表如何表现价格变动

相信大多数投资者与FPmarkets澳福一样,都已发现Renko图表与日本烛台图一样,具有上升和下降的特性。增长期间的典型砖块颜色为绿色或白色,而衰退期前的Renko则呈现红色或黑色。 今天,FPmarkets澳福将与各位投资者共同探讨Renko图表…

计算机视觉的优势和挑战

计算机视觉(CV)是一项快速发展的技术,它具有许多优势和挑战。以下是一些可能的例子: 优势: 1. 自动化:CV技术可以自动化任务,例如图像分类、目标检测和跟踪,从而提高生产力和减少人…

第一个 Go 程序“hello,world“ 与 main 函数

第一个 Go 程序"hello,world" 与 main 函数 文章目录 第一个 Go 程序"hello,world" 与 main 函数一.创建“hello,world”示例程序二. “hello,world” 程序结构拆解三、main 函数四、Go 语言中程序是怎么编译…

C++qt Day10

1.制作闹钟 头文件 #include <QWidget> #include <QTimerEvent> #include <QTime> #include <QtTextToSpeech/QTextToSpeech> #include <QTextEdit> #include <QString>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMES…

PowerDesigner 连接 MYSQL

我使用的是powerDesigner16的版本&#xff0c;使用前先保证安装了 mysql odbc 驱动包 选择&#xff1a;文件 -> 反向工程 -> database… 一大波图片正在来袭。。。 点击确认 至此连接成功

代码随想录二刷day37

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣738. 单调递增的数字二、力扣968. 监控二叉树 前言 一、力扣738. 单调递增的数字 class Solution {public int monotoneIncreasingDigits(int n) {Str…

【JavaScript保姆级教程】Javascript常量

文章目录 前言一、常量1.1 常量是什么1.2 常量的作用 二、示例代码2.1 示例1&#xff1a;声明一个常量2.2 示例2&#xff1a;常量的命名规则2.3 示例3&#xff1a;常量与变量的区别 总结 前言 欢迎来到【JavaScript保姆级教程】&#xff01;在本篇教程中&#xff0c;我们将讨论…

【激光雷达码盘偏摆角的真假点映射关系】

激光雷达码盘偏摆角的真假点映射关系 一、概要二、完架构流程三、技术细节四、完整代码 一、概要 本代码主要计算激光雷达码盘偏摆角&#xff08;也可以理解为雷达的零位角&#xff09;导致的实际slam建图距离的偏差&#xff0c;只取了第一个象限作为分析目标。最终得出的结论是…

浅谈Deep Learning 与 Machine Learning 与Artificial Intelligence

文章目录 三者的联系与区别 三者的联系与区别 “Deep Learning is a kind of Machine Learning, and Machine Learning is a kind of Artificial Intelligence.” 人工智能&#xff08;AI&#xff09;&#xff0c;机器学习&#xff08;Machine Learning&#xff0c;简称ML&am…

41. Linux系统配置FTP服务器并在QT中使用QFtp实现文件上传

1. 说明 这篇博客主要记录一些在Linux系统中搭建FTP服务器时踩过的一些坑,以及在使用QFtp上传文件时需要注意的问题。 2. FTP环境搭建 在linux系统中,需要安装vsftpd,可以在终端中输入下面的命令进行安装: sudo apt-get install vsftpd使用上述命令安装后,系统中会有一…

深入探索RTPS/DDS协议:为嵌入式设备打造的可移植C++实现指南

第一部分&#xff1a;RTPS/DDS协议简介及其在嵌入式设备中的重要性 1. RTPS/DDS协议简介 RTPS (Real-Time Publish-Subscribe) 和 DDS (Data Distribution Service) 是两个紧密相关的中间件协议&#xff0c;专为实时系统设计。它们为分布式应用提供了一种高效、可靠和可扩展的…

价值1000的情感爆文写作prompt,助你写出10万+阅读微信爆文

原文&#xff1a;价值1000的情感爆文写作prompt&#xff0c;助你写出10万阅读微信爆文 - 知乎 是否经常看到一些自媒体晒出这样的图片&#xff1f; 或者是这样的10w的阅读文章 那么这是真实能赚钱的吗&#xff1f;还是自媒体夸大其说&#xff0c;吸引流量。 我们先简单了解什…

什么是重入锁?

重入锁&#xff08;Reentrant Lock&#xff09;是一种在多线程编程中用于控制对共享资源访问的锁机制。它的特点是允许同一个线程多次获得同一把锁&#xff0c;也就是说&#xff0c;线程可以进入由它已经持有的锁所保护的代码块&#xff0c;而不会被自己持有的锁所阻塞。这种特…

基础练习 回文数

问题描述 1221是一个非常特殊的数&#xff0c;它从左边读和从右边读是一样的&#xff0c;编程求所有这样的四位十进制数。 输出格式 按从小到大的顺序输出满足条件的四位十进制数。 solution1 #include <stdio.h> int main(){int n 1000, n1, n2, n3, n4;while(n &…

【C++】bitset位图的简单模拟实现及常见面试题

文章目录 前言一、 bitset模拟实现二、 常见面试题1.给你一百亿个整数&#xff0c;找到只出现一次的数字2. 给两个文件&#xff0c;分别有100亿个整数&#xff0c;我们只有1G内存&#xff0c;如何找到两个文件交集&#xff1f; 前言 快速查找某个数据是否在一个集合中排序 去重…

有名管道及其应用

创建FIFO文件 1.通过命令&#xff1a; mkfifo 文件名 2.通过函数: mkfifo #include <sys/types.h> #include <sys/stat.h> int mkfifo(const char *pathname, mode_t mode); 参数&#xff1a; -pathname&#xff1a;管道名称的路径 -mode&#xff1a;文件的权限&a…

每日两题 70爬楼梯 746使用最小花费爬楼梯(动态规划)

70 70 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼顶。 1 阶 1 阶2 阶 示例 …

程序员的快乐如此简单

最近在GitHub上发起了一个关于Beego框架的小插件的开源仓库&#xff0c;这一举动虽然看似微小&#xff0c;但其中的快乐和意义却是无法用言语表达的。 Beego是一个开源的Go语言Web框架&#xff0c;它采用了MVC架构模式&#xff0c;并集成了很多常用的功能和中间件。小插件是指…