mycat实现mysql读写分离

一. mycat集群+Haproxy+Keepalived

mycat集群+Haproxy+Keepalived+mysql1主2从

环境规划 centos7.9
1主2从,读写分离

名称ip端口
mysql-master192.168.1.2203306
mysql-slave1192.168.1.2213306
mysql-slave2192.168.1.2223306
mycat-1192.168.1.2218066
mycat-2192.168.1.2228066
haproxy-1192.168.1.22118066
haproxy-2192.168.1.22218066
keepalived-1192.168.1.221
keepalived-2192.168.1.222

image.png

1.1 在另一台机器上面部署mycat,

1.2 Keepalived安装

#查看yum可用的keepalived版本
yum list|grep keepalived#在线安装使用yum安装keepalived
yum -y install  keepalived.x86_64#在/etc/keepalived下新建check_haproxy.sh脚本,脚本内容如下
cat > /etc/keepalived/check_haproxy.sh <<-'EOF'
#!/bin/bash
A=`ps -C haproxy --no-header |wc -l`
if [ $A -eq 0 ];then
systemctl start haproxy.service
fi
EOFcat /etc/keepalived/check_haproxy.shchmod + /etc/keepalived/check_haproxy.sh

1.3 修改Keepalived配置文件

cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf-bak#192.168.1.221 节点1配置
vim /etc/keepalived/keepalived.conf
global_defs {router_id NodeA            					 #当前节点名称
}
vrrp_instance VI_1 {state MASTER                         #设置主服务器interface ens160                     #系统的网卡名字(centos6为eth0,centos7位eth33)virtual_router_id 10    haproxy.cfg  #多个保持心跳的keepalived节点要设置同一个router_idpriority 100                         #权重,权重数字越大,权重越大:即表示VIP访问权重最大的advert_int 1authentication {auth_type PASS           #通过PASS认证(密码认证)auth_pass 123456         #多个保持心跳的keepalived节点要设置同一个auth_pass}virtual_ipaddress {     				 #虚拟IP地址,可设置多个192.168.1.67/24       #对外暴露的IP地址,24是网络位数(可省略)}track_script{                    #自定义追踪脚本chk_haproxy              #追踪haproxy}
}
vrrp_script chk_haproxy {       				 #定义的方法名script "/etc/keepalived/check_haproxy.sh"interval 4              				#追踪频率weight 3                        #追踪权重
}#192.168.1.222 节点2配置
vim /etc/keepalived/keepalived.conf
global_defs {router_id NodeB            					 #当前节点名称
}
vrrp_instance VI_1 {state MASTER                         #设置主服务器interface ens160                     #系统的网卡名字(centos6为eth0,centos7位eth33)virtual_router_id 10    haproxy.cfg  #多个保持心跳的keepalived节点要设置同一个router_idpriority 90                         #权重,权重数字越大,权重越大:即表示VIP访问权重最大的advert_int 1authentication {auth_type PASS           #通过PASS认证(密码认证)auth_pass 123456         #多个保持心跳的keepalived节点要设置同一个auth_pass}virtual_ipaddress {     				 #虚拟IP地址,可设置多个192.168.1.67/24       #对外暴露的IP地址,24是网络位数(可省略)}track_script{                    #自定义追踪脚本chk_haproxy              #追踪haproxy}
}
vrrp_script chk_haproxy {       				 #定义的方法名script "/etc/keepalived/check_haproxy.sh"interval 4              				#追踪频率weight 3                        #追踪权重
}#重启
systemctl enable keepalived
systemctl restart keepalived
systemctl status keepalived
ip a |grep 192.168.1.67

1.4 Haproxy安装的安装与配置

#查看yum可用的haproxy版本
yum list|grep haproxy
#在线安装使用yum安装haproxy
yum -y install haproxy.x86_64cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg-bakcd /etc/haproxy/

节点1和节点2 配置修改

vim /etc/haproxy/haproxy.cfggloballog         127.0.0.1 local2chroot      /var/lib/haproxypidfile     /var/run/haproxy.pidmaxconn     4000user        haproxygroup       haproxydaemon# turn on stats unix socketstats socket /var/lib/haproxy/statsdefaultsmode        tcplog         globaloption      tcplogoption      dontlognulloption              http-server-closeoption              redispatchretries     3timeout     http-request    10stimeout     queue                   1mtimeout     connect                 10stimeout     client                  1mtimeout     server                  1mtimeout     http-keep-alive 10stimeout     check                   10smaxconn                                     3000#配置haproxy可连接的地址,与绑定固定的域名
frontend        mysqlbind    0.0.0.0:18066mode    tcplog             globaldefault_backend mysql_server#负载均衡的真实数据库地址
backend         mysql_serverbalance roundrobinserver  mycat1 192.168.1.221:8066 check inter 5s rise 2 fall 3server  mycat2 192.168.1.222:8066 check inter 5s rise 2 fall 3#rise 2是2次正确认为服务器可用,fall 3是3次失败认为服务器不可用#客户端配置
listen  admin_statusmode  httpbind 0.0.0.0:18000option httploglog globalstats enablestats refresh 10sstats hide-versionstats realm Haproxy\ Statisticsstats uri  /admin-statusstats auth  admin:123456stats admin if TRUEsystemctl enable haproxy.service
systemctl restart haproxy.service
systemctl status haproxy.service

启动mycat

cd /mysql/app/mycat/bin#测试启动控制台
./mycat console#启动
./startup_nowrap.sh#查看进程
jps

1.5 测试mysql

# VIP测试
mysql -uroot -p123456 -P18066 -h 192.168.1.67

http://192.168.1.67:18000/admin-status
image.png

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

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

相关文章

Redis集群搭建

为什么要有集群 之前我们已经讲了主从的概念&#xff0c;一主可以多从&#xff0c;如果同时的访问量过大(1000w),主服务肯定就会挂掉&#xff0c;数据服务就挂掉了或者发生自然灾难 大公司都会有很多的服务器(华东地区、华南地区、华中地区、华北地区、西北地区、西南地区、东…

Android Studio读写低频RFID T5557卡源码

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?id675212889085&spma1z10.5-c.w4002-21818769070.13.21166f89nKgnJ7 <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xml…

【Docker】实战多阶段构建 Laravel 镜像

作者主页&#xff1a; 正函数的个人主页 文章收录专栏&#xff1a; Docker 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01; 本节适用于 PHP 开发者阅读。Laravel 基于 8.x 版本&#xff0c;各个版本的文件结构可能会有差异&#xff0c;请根据实际自行修改。 准备 新…

webpack面试题学习

说说你对webpack的理解&#xff1f;解决了什么问题&#xff1f; 说说webpack的构建流程? 说说webpack中常见的Loader&#xff1f;解决了什么问题&#xff1f; 说说webpack中常见的Plugin&#xff1f;解决了什么问题&#xff1f; 说说Loader和Plugin的区别&#xff1f;编写Load…

leetcode 013二维区域和检索---矩阵不可变

给定一个二维矩阵 matrix&#xff0c;以下类型的多个请求&#xff1a; 计算其子矩形范围内元素的总和&#xff0c;该子矩阵的左上角为 (row1, col1) &#xff0c;右下角为 (row2, col2) 。 实现 NumMatrix 类&#xff1a; NumMatrix(int[][] matrix) 给定整数矩阵 matrix 进…

Failed to connect to github.com

链接github超时 hosts文件夹下加上

Python使用HTTP代理实现网络请求的自动化

随着网络技术的发展&#xff0c;网络请求成为了许多应用的重要组成部分。然而&#xff0c;手动发送网络请求不仅效率低下&#xff0c;而且容易出错。为了解决这个问题&#xff0c;我们可以使用Python来实现网络请求的自动化。而HTTP代理可以帮助我们更好地控制和管理这些请求。…

【小笔记】时序数据分类算法最新小结

2024.1.15 最近基于时序数据训练分类算法&#xff0c;对其进行了一番了解&#xff0c;主要围绕以下几点&#xff1a; 时序数据算法有哪些细分类&#xff1f;时序数据分类算法经典模型&#xff1f;当下时序分类算法模型强baseline&#xff1f;有没有现成的工具&#xff1f; 1…

二、VTK 最简单的示例代码-创建圆柱体

今天来使用VS2019 CMake 项目 测试VTK 9.0.0 的环境是否配置好 来测试一段简单的代码 // 1.cpp: 定义应用程序的入口点。 //#include <vtkActor.h> #include <vtkCamera.h> #include <vtkCylinderSource.h> #include <vtkNamedColors.h> #include &l…

【FPGA Modsim】序列检测

实验题目&#xff1a; 序列检测器设计 实验目的&#xff1a; 掌握应用数字逻辑设计集成开发环境进行序列检测器设计的方法&#xff1b;掌握时序逻辑电路设计的过程。 实验内容&#xff1a; 1、设计一个序列检测器…

Talk|香港中文大学高瑞元:MagicDrive - 基于3D几何控制的自动驾驶街景数据生成

本期为TechBeat人工智能社区第565期线上Talk。 北京时间1月18日(周四)20:00&#xff0c;香港中文大学博士生—高瑞元的Talk已准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “MagicDrive - 基于3D几何控制的自动驾驶街景数据生成”&#xff0c;介绍了他的…

湛江涡轮壳工件实物扫描三维测绘广州抄数公司造型stl转面3d打印

湛江涡轮壳上门实物三维扫描及抄数打印案例&#xff08;CASAIM中科广电&#xff09;&#xff1a; 涡轮壳三维扫描及逆向设计技术是一种基于计算机辅助设计&#xff08;CAD&#xff09;和逆向工程&#xff08;RE&#xff09;的方法&#xff0c;用于对涡轮壳进行精确的三维测量和…

基于小波多普勒变换的回波信号检测matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1小波变换基础 4.2 多普勒效应与多普勒变换 4.3 小波多普勒变换 4.4 回波信号检测 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 %回波…

解决打开 json 文件中文乱码的问题

如下图&#xff0c;pycharm 打开是下面的样子 右下角的编码尝试了好久&#xff0c;依然打不开 用代码打开就成功了 import jsonwith open(./Mydata/garbage_classification.json,encodingutf8,moder) as f:data json.load(f) print(data)控制台结果&#xff1a;

时序分解 | Matlab实现SMA-CEEMDAN利用黏菌优化算法优化CEEMDAN时间序列信号分解

时序分解 | Matlab实现SMA-CEEMDAN利用黏菌优化算法优化CEEMDAN时间序列信号分解 目录 时序分解 | Matlab实现SMA-CEEMDAN利用黏菌优化算法优化CEEMDAN时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 SMA-CEEMDAN利用黏菌优化算法优化CEEMDAN Matlab语言…

JVM性能调优-垃圾收集器G1详解

目录 G1收集器(-XX:UseG1GC) G1垃圾收集分类 YoungGC MixedGC Full GC G1收集器参数设置 G1垃圾收集器优化建议 什么场景适合使用G1 G1收集器(-XX:UseG1GC) G1 (Garbage-First)是一款面向服务器的垃圾收集器,主要针对配备多颗处理器及大容量内存的机器. 以极高概率满足…

VSCode 插件推荐

前言 关于开发用的插件就不做赘述了&#xff0c;网上面有很多文章都做了推荐&#xff0c;本文推荐几个好看的插件。 文件图标主题 Vscode icons Material Icon Theme 字体主题 推荐 One Dark Pro 其他 推荐一个生成好看代码的网址 https://carbon.now.sh/

智能小程序真机调试教程

概述 Tuya MiniApp Tools 真机调试通过网络连接实现 kit 插件调试功能&#xff0c;帮助开发者更好地排查定位问题。区别于模拟调试&#xff0c;真机调试将使用用户的真实环境。 功能 发起调试 在 Tuya MiniApp Tools 中登录并打开项目&#xff0c;单击上述图片红框内按钮后&…

【前沿技术杂谈:智能对话的未来】深入比较ChatGPT与文心一言

【前沿技术杂谈&#xff1a;智能对话的未来】深入比较ChatGPT与文心一言 引言主体智能回复语言准确性知识库丰富度 深入分析&#xff1a;ChatGPT与文心一言的技术对比技术架构和算法数据处理和隐私用户界面和体验 应用场景分析未来展望技术进步的趋势潜在的挑战对社会的影响 结…

【mars3d】 graphic.bindPopup(inthtml).openPopup()无需单击小车,即可在地图上自动激活弹窗的效果。

实现效果&#xff1a;new mars3d.graphic.FixedRoute({无需单击小车&#xff0c;即可在地图上实现默认打开弹窗的激活效果。↓↓↓↓↓↓↓↓ 相关链接说明&#xff1a; 1.popup的示例完全开源&#xff0c;可参考&#xff1a;功能示例(Vue版) | Mars3D三维可视化平台 | 火星科…