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

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


http://www.kler.cn/a/538955.html

相关文章:

  • redis高级数据结构Stream
  • 解决bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException
  • 2020-12-27 把int类型拆开并放入一个字符型数组当中。
  • k8s部署rabbitmq
  • 单例设计模式(Java)
  • LIMO:少即是多的推理
  • JavaScript 在 VSCode 中的优势与应用
  • 李飞飞团队 S1 技术思路:低成本实现高效推理模型
  • 数据结构在 Web 开发中的重要性与应用
  • 【滑动窗口与双指针】学习记录
  • QTreeView和QTableView单元格添加超链接
  • 我用AI做数据分析之数据清洗
  • DeepSeek-R1相关论文解读
  • GitHub Copilot Agent 模式系统提示词
  • 安卓开发,打开PDF文件
  • 【Java基础篇】——第2篇:Java语法基础
  • Python Pandas(6):Pandas JSON
  • 前端VSCode常用插件
  • NIO——网络编程
  • 什么是 HTTP/2 和 HTTP/3?
  • 聚焦 MySQL 优化器:探究 Adaptive Hash Index 与 Query Cache 那些事儿
  • Android开发获取缓存,删除缓存
  • 2月9日QT
  • 车载工具简介 --- VH6501基本配置guideline
  • 知识图谱智能应用系统:数据分析与挖掘技术文档
  • 每日一题洛谷P5733 【深基6.例1】自动修正c++