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.hqwc.cn/news/421286.html

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

相关文章

《WebKit 技术内幕》之八(1):硬件加速机制

《WebKit 技术内幕》之八&#xff08;1&#xff09;&#xff1a;硬件加速机制 1 硬件加速基础 1.1 概念 这里说的硬件加速技术是指使用GPU的硬件能力来帮助渲染网页&#xff0c;因为GPU的作用主要是用来绘制3D图形并且性能特别好&#xff0c;这是它的专长所在&#xff0c;它…

4D毫米波雷达——FFT-RadNet 目标检测与可行驶区域分割 CVPR2022

前言 本文介绍使用4D毫米波雷达&#xff0c;实现目标检测与可行驶区域分割&#xff0c;它是来自CVPR2022的。 会讲解论文整体思路、输入数据分析、模型框架、设计理念、损失函数等&#xff0c;还有结合代码进行分析。 论文地址&#xff1a;Raw High-Definition Radar for Mu…

JVM篇--垃圾回收器高频面试题

1 你知道哪几种垃圾收集器&#xff0c;各自的优缺点是啥&#xff0c;重点讲下cms和G1&#xff0c;包括原理&#xff0c;流程&#xff0c;优缺点&#xff1f; 1&#xff09;首先简单介绍下 有以下这些垃圾回收器 Serial收集器&#xff1a; 单线程的收集器&#xff0c;收集垃圾时…

Vue学习笔记9--vuex(专门在Vue中实现集中式状态(数据)管理的一个Vue插件)

一、vuex是什么&#xff1f; 概念&#xff1a;专门在Vue中实现集中式状态&#xff08;数据&#xff09;管理的一个Vue插件&#xff0c;对vue应用中多个组件的共享状态进行集中式的管理&#xff08;读/写&#xff09;&#xff0c;也是一种组件间通信的方式&#xff0c;且适用于…

磁盘初始化会丢失文件吗?答案揭晓!

“由于我的电脑出现了一些问题&#xff0c;我就将磁盘初始化了&#xff0c;但是里面还有很重要的文件&#xff0c;磁盘初始化了文件会丢失吗&#xff1f;有什么方法可以恢复丢失的文件呢&#xff1f;” 当我们谈论磁盘初始化&#xff0c;通常是指对硬盘或固态驱动器&#xff08…

云盘后端分析

1.验证码 用的是外面找的 2.发送邮箱验证码 配置邮箱的授权码 我们在发送邮箱的时候&#xff0c;需要把那个值传到数据库中&#xff0c;数据库中有它的状态&#xff0c;我们需要根据状态判断它是注册还是找回密码 我们在发送邮箱之前&#xff0c;先从session里面得到我们验证…

RT Thread Stdio生成STM32L431RCT6无法启动问题

一、问题现象 使用RT thread Stdio生成STM32L431RCT6工程后&#xff0c;编译下载完成后系统无法启动&#xff0c;无法仿真debug&#xff1b; 二、问题原因 如果当前使用的芯片支持包版本为0.2.3&#xff0c;可能是这个版本问题&#xff0c;目前测试0.2.3存在问题&#xff0c…

分享一个简单的html模板,拿去学习真是太合适了

用纯html写个个人博客&#xff01;首先得先找个模板&#xff01; 一个优秀模板所应该具有的素质&#xff1f; 简单&#xff1f; 仅仅一个html页面&#xff0c;完全没有乱七八糟&#xff0c;保证学的明明白白。 漂亮&#xff1f; 该有的内容一个不少&#xff01; 一个完美的…

利用Anaconda安装pytorch和paddle深度学习环境+pycharm安装后不能调用pytorch和paddlepaddle框架

问题现象&#xff1a; 之前安装后不能在添加pytorch和paddlepaddle框架 原因&#xff08;疑似&#xff09;&#xff1a; 在终端中显示pytorch和paddle在C盘但是安装是安装在J盘 解决办法&#xff1a; 卸载、删除文件重新安装后可以看到文件位置在J盘中 但是选择时还是显示C…

4.postman批量运行及json、cvs文件运行

一、批量运行collection 1.各个接口设置信息已保存&#xff0c;在collection中点击run collection 2.编辑并运行集合 集合运行时&#xff0c;单独上传图片时报错。需修改postman设置 二、csv文件运行 可新建记事本&#xff0c;输入测试数据&#xff0c;后另存为新的文本文件&…

实战项目(一)内容管理系统

一、实现技术 前端技术&#xff1a;html、javascript(jquery、ajax、json)、css 后端技术&#xff1a;java、mysql、servlet 开发工具&#xff1a;eclipse、vscode 二、项目描述 首页仿写某大学网页&#xff0c;上面有各种栏目及栏目内容&#xff0c;管理员能登录进去对首…

flink内存管理(二):MemorySegment的设计与实现:(1)架构、(2)管理堆内/外内存、(3)写入/读取内存、(4)垃圾清理器

文章目录 一. MemorySegment架构概览二. MemorySegment详解1.基于MemorySegment管理堆内存2.基于MemorySegment管理堆外内存3.基于Unsafe管理MemorySegment4.写入和读取内存数据5.创建MemoryCleaner垃圾清理器 在flink内存管理&#xff08;一&#xff09;中我们已经知道&#x…