当前位置: 首页 > news >正文

MySQL 主从读写分离实现方案(一)—MariaDB MaxScale实现mysql8读写分离

一:MaxScale 是干什么的??

MaxScale是maridb开发的一个mysql数据中间件,其配置简单,能够实现读写分离,并且可以根据主从状态实现写库的自动切换,对多个从服务器能实现负载均衡。

img

二:MaxScale 实验环境部署

前提条件完成Mysql主从同步

中间件192.168.1.15MaxScale 24.02.4-1
主服务器192.168.1.10mysql 8.0.40
从服务器192.168.1.11mysql 8.0.40
从服务器192.168.1.12mysql 8.0.40

192.168.1.15(MaxScale)

从官方网站获取shell脚本,用于实现MariaDB包存储库的访问

[root@rocky ~]# curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash

查找与 MaxScale 相关的软件包

[root@rocky ~]# dnf list |grep -i maxscale

[root@rocky ~]# yum install maxscale -y

在/etc/maxscale.cnf.d新建一个配置my.cnf或者直接修改/etc/maxscale.cnf文件

[root@rocky ~]# cd /etc/maxscale.cnf.d/

[root@rocky maxscale.cnf.d]# vim my.cnf

[maxscale]
threads=auto

[dbserv1]
type=server
address=192.168.1.10
port=3306
protocol=MariaDBBackend

[dbserv2]
type=server
address=192.168.1.11
port=3306
protocol=MariaDBBackend

[dbserv3]
type=server
address=192.168.1.12
port=3306
protocol=MariaDBBackend

[MySQL-Monitor]
type=monitor
module=mariadbmon
servers=dbserv1, dbserv2, dbserv3
user=maxscale_monitor
password=Admin@123456
monitor_interval=2s

[Read-Write-Service]
type=service
router=readwritesplit
servers=dbserv1,dbserv2,dbserv3
user=maxscale_route
password=Admin@123456
enable_root_user=true

[Read-Write-Listener]
type=listener
service=Read-Write-Service
protocol=MariaDBClient
address=0.0.0.0
port=3306

192.168.1.10(master)

在 master中为 MaxScale 创建两个用户,用于监控模块和路由模块,已经实现主从复制的前提下,主库创建的用户,能同步到从库上

1.创建监控用户

--创建用户
mysql> create user 'maxscale_monitor'@'192.168.1.%' identified with mysql_native_password by 'Admin@123456';

--用户授权 “同步复制”、“同步复制状态”
mysql> grant replication slave, replication client on *.* to maxscale_monitor@'192.168.1.%';

2.创建路由用户

--创建用户
mysql>create user 'maxscale_route'@'192.168.1.%' identified with mysql_native_password by 'Admin@123456';
--用户授权
mysql>GRANT SHOW DATABASES ON *.* TO maxscale_route@'192.168.1.%';
mysql>GRANT SELECT ON mysql.user TO maxscale_route@'192.168.1.%';
mysql>GRANT SELECT ON mysql.db TO maxscale_route@'192.168.1.%';
mysql>GRANT SELECT ON mysql.tables_priv TO maxscale_route@'192.168.1.%';
mysql>GRANT SELECT ON mysql.columns_priv TO maxscale_route@'192.168.1.%';
mysql>GRANT SELECT ON mysql.proxies_priv TO maxscale_route@'192.168.1.%';

启动MaxScale服务

配置完成后 192.168.1.15重启MaxScale服务

[root@4e2804021a7d /]# maxscale -f /etc/maxscale.cnf.d/my.cnf -U maxscale

[root@rocky ~]# ps -ef|grep maxscale

使用 maxctrl list servers 命令查看运行状态

[root@rocky ~]# maxctrl list servers

使用 maxctrl list listeners Read-Write-Service 命令查看服务监听状态信息

[root@rocky ~]# maxctrl list listeners Read-Write-Service

相关文章:

MySQL 主从读写分离实现方案(一)—MariaDB MaxScale实现mysql8读写分离

一:MaxScale 是干什么的?? MaxScale是maridb开发的一个mysql数据中间件,其配置简单,能够实现读写分离,并且可以根据主从状态实现写库的自动切换,对多个从服务器能实现负载均衡。 二:MaxScale …...

阿里云 | DeepSeek人工智能大模型安装部署

ModelScope是阿里云人工智能大模型开源社区 ModelScope网络链接地址 https://www.modelscope.cn DeepSeek模型库网络链接地址 https://www.modelscope.cn/organization/deepseek-ai 如上所示,在阿里云人工智能大模型开源社区ModelScope中,使用阿里云…...

LLAMA-Factory安装教程(解决报错cannot allocate memory in static TLS block的问题)

步骤一: 下载基础镜像 # 配置docker DNS vi /etc/docker/daemon.json # daemon.json文件中 { "insecure-registries": ["https://swr.cn-east-317.qdrgznjszx.com"], "registry-mirrors": ["https://docker.mirrors.ustc.edu.c…...

STM32 CUBE Can调试

STM32 CUBE Can调试 1、CAN配置2、时钟配置3、手动添加4、回调函数5、启动函数和发送函数6、使用方法(采用消息队列来做缓存)7、数据不多在发送函数中获取空邮箱发送,否则循环等待空邮箱 1、CAN配置 2、时钟配置 3、手动添加 需要注意的是STM32CUBE配置的代码需要再…...

MySQL数据存储- 索引组织表

索引组织表 前言数据存储堆表索引组织表 二级索引二级索引的性能评估🔹为什么 idx_name 的性能开销最大?🔹 为什么 idx_last_modify_date 更新频繁会影响性能?分析二级索引性能表格为什么主键应该“紧凑且顺序”?二级索…...

基于STM32设计的仓库环境监测与预警系统

目录 项目开发背景设计实现的功能项目硬件模块组成设计思路系统功能总结使用的模块的技术详情介绍总结 1. 项目开发背景 随着工业化和现代化的进程,尤其是在制造业、食品业、医药业等行业,仓库环境的监控和管理成为了至关重要的一环。尤其是在存储易腐…...

VSCode便捷开发

一、常用插件 Vue 3 Snippets、Vetur、Vue - Official 二、常用开发者工具 三、Vue中使用Element-UI 安装步骤: 1、在VSCode的终端执行如下指令: npm i element-ui -S 2、在main.js中全局引入: import Vue from vue; import ElementUI from …...

理解 Maven 的 pom.xml 文件

pom.xml 是 Maven 项目的核心文件,它是项目构建、依赖管理、插件配置和项目元数据的主要地方。通过 pom.xml 文件,Maven 知道如何构建项目、下载依赖库、执行测试等任务。每个 Maven 项目都必须包含一个 pom.xml 文件。本文将详细讲解 pom.xml 文件的结构…...

docker数据持久化的意义

Docker 数据持久化是指在 Docker 容器中保存的数据不会因为容器的停止、删除或重启而丢失。Docker 容器本身是临时性的,默认情况下,容器内的文件系统是临时的,容器停止或删除后,其中的数据也会随之丢失。为了确保重要数据&#xf…...

opentelemetry-collector 配置elasticsearch

一、修改otelcol-config.yaml receivers:otlp:protocols:grpc:endpoint: 0.0.0.0:4317http:endpoint: 0.0.0.0:4318 exporters:debug:verbosity: detailedotlp/jaeger: # Jaeger supports OTLP directlyendpoint: 192.168.31.161:4317tls:insecure: trueotlphttp/prometheus: …...

ASP.NET Core JWT Version

目录 JWT缺点 方案 实现 Program.cs IdentityHelper.cs Controller NotCheckJWTVersionAttribute.cs JWTVersionCheckkFilter.cs 优化 JWT缺点 到期前,令牌无法被提前撤回。什么情况下需要撤回?用户被删除了、禁用了;令牌被盗用了&…...

【ArcGIS】R语言空间分析、模拟预测与可视化技术

R语言在空间数据挖掘中具有广泛的应用,以下是一些关键内容和常用包的介绍: R语言空间数据挖掘的关键技术 空间数据类型 矢量数据:包括点(Point)、线(Line)、面(Polygon)等…...

日常知识点之面试后反思遗留问题汇总

梳理一下最近接触到的几个知识点: 1:突然问到端口复用 (SO_REUSEADDR) 端口复用一般用在服务端重启时,套接字处于time_wait状态时,无法绑定该端口,导致无法启动问题。 设置端口复用&#xff…...

链表(LinkedList) 1

上期内容我们讲述了顺序表,知道了顺序表的底层是一段连续的空间进行存储(数组),在插入元素或者删除元素需要将顺序表中的元素整体移动,时间复杂度是O(n),效率比较低。因此,在Java的集合结构中又引入了链表来解决这一问…...

Qt:Qt Creator项目创建

目录 认识Qt Creator Qt Creator概览 使用Qt Creator新建项目 选择项目模板 选择项目路径 选择构建系统 填写类信息设置界面 选择语言和翻译文件 选择Qt套件 选择版本控制系统 最终效果 认识Qt Creator Qt Creator概览 从开始菜单或者快捷方式打开Qt Creator集成开…...

windows11上,使用pipx安装Poetry,Poetry的安装路径是什么?

当使用 pipx 安装 Poetry 时,pipx 会将 Poetry 安装到一个独立的虚拟环境中,并将其可执行文件链接到一个集中的目录中。以下是 pipx 安装 Poetry 时的路径信息: 1. Poetry 的安装路径 pipx 会为每个工具(如 Poetry)创…...

详解状态模式

引言 水有固态、液态、气态三种状态,在不同条件下这三种状态可以相互转化。同样在软件设计中,有些对象也有不同的状态,不同状态的行为不同,状态模式就是用来处理这种情况的。 1.概念 状态模式(State Pattern):允许一个…...

能否通过蓝牙建立TCP/IP连接来传输数据

前言: 最近在做一个项目时,产生了一个疑问:能否通过蓝牙建立TCP/IP连接来传输数据 查阅了一些文章,可以得出结论:不行 下面是我截取的两篇个人认可的文章的回答: 文章一: 蓝牙是一种短距离无…...

uniapp mqttjs 小程序开发

在UniApp中集成MQTT.js开发微信小程序时,需注意平台差异、协议兼容性及消息处理等问题。以下是关键步骤与注意事项的综合指南: 一、环境配置与依赖安装 安装MQTT.js 推荐使用兼容性较好的版本:mqtt4.1.0(H5和小程序兼容性最佳&…...

爬虫工程师分享:获取京东商品详情SKU数据的技术难点与攻破方法

在电商数据领域,京东商品详情页的SKU数据是许多爬虫工程师的目标。这些数据包含了商品的价格、库存、规格等关键信息,对于市场分析、价格监控等应用场景至关重要。然而,获取这些数据并非易事,京东作为国内电商巨头,其反…...

Qwen3.5-4B模型在嵌入式系统日志智能分析中的实践

Qwen3.5-4B模型在嵌入式系统日志智能分析中的实践 1. 嵌入式日志分析的痛点与机遇 在物联网网关、工业控制器等嵌入式设备运行过程中,系统日志就像设备的"健康日记",记录着每一次心跳、每一次异常。传统运维人员需要像"破译密码"一…...

writeup

3-hafuhafu - Writeup by AI 题目信息 项目内容平台BugKu类型Crypto (RSA)考点RSA 加密、大数分解、私钥计算 题目描述 题目给出了一个 RSA 公钥和一段 Base64 编码的密文,要求解密得到 flag。 公钥信息: pk (25572000680139535995611501720832880…...

Redis持久化:从AOF到RDB,如何实现数据不丢失?

Redis属于内存数据库,但为了防止宕机等导致的数据丢失,也有对应的数据持久化技术。持久化主要作用就是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。 AOF持久化 Append Only File 类似于Mysql的binlog日志类似&…...

STM32状态机按键驱动设计:支持多事件触发与动态配置

1. 为什么需要状态机按键驱动? 在嵌入式开发中,按键处理看似简单却暗藏玄机。传统while循环扫描方式就像让主程序不断询问"按键按下了吗?",不仅效率低下,还会导致系统响应迟钝。我曾在一个工业控制器项目中发…...

FPGA实战:手把手教你用Verilog实现以太网PHY芯片MDIO寄存器读写(附完整代码)

FPGA实战:手把手教你用Verilog实现以太网PHY芯片MDIO寄存器读写 在当今高速网络设备开发中,FPGA与以太网PHY芯片的协同工作已成为工业级设计的标配。MDIO(Management Data Input/Output)接口作为IEEE 802.3标准定义的两线制串行总…...

先抛个干货:这个改进版的黑猩猩优化算法SLWChoA,新手照着敲就能跑,而且效果比原版和不少老算法都强

混合改进策略的黑猩猩优化算法SLWChoA:采用Sobel序列初始化种群,增强种群的多样性和随机性;引入凸透镜成像的反向学习策略,提高算法的收敛速度精度和速度;将水波动态自适应因子添加到攻击者位置更新出,增强…...

告别重复造轮子:用快马AI一键生成高安全性的标准化登录模块

告别重复造轮子:用快马AI一键生成高安全性的标准化登录模块 最近在开发一个需要用户系统的项目时,遇到了一个常见但耗时的问题:如何快速实现一个既安全又美观的登录模块。相信很多开发者都深有体会,每次新建项目都要从头开始写登…...

PyTorch 2.8镜像实战案例:内容创作团队基于Diffusers批量生成社媒短视频

PyTorch 2.8镜像实战案例:内容创作团队基于Diffusers批量生成社媒短视频 1. 项目背景与需求 在当今社交媒体内容爆炸式增长的时代,短视频创作团队面临着巨大的内容生产压力。传统视频制作流程需要经历脚本创作、拍摄、剪辑等多个环节,一个专…...

从FasterRCNN到自定义检测器:SimpleDet扩展开发完全手册

从FasterRCNN到自定义检测器:SimpleDet扩展开发完全手册 【免费下载链接】simpledet A Simple and Versatile Framework for Object Detection and Instance Recognition 项目地址: https://gitcode.com/gh_mirrors/si/simpledet SimpleDet是一个简单且多功能…...

保姆级教程:用PHPStudy+红日靶场复现一次完整的内网渗透(从外网打到域控)

从零构建内网渗透实战:PHPStudy环境下的红日靶场攻防演练 在网络安全领域,内网渗透测试是检验企业防御体系完整性的重要手段。本文将带领读者使用常见的PHPStudy环境搭建红日靶场,通过模拟真实攻击路径,从外网Web渗透逐步深入内网…...