MySql 9 in Docker 主从切换

继上一篇《MySql 9 in Docker 利用克隆插件搭建主从》我们说了主从复制后, 那么我们接下来说说如何手动的进行主从切换。

动手~

1. 原主库设置

  1. 切断应用对主库的访问

  2. 主库设置为只读状态

    set global read_only=ON;
    set global super_read_only=ON;

  3. 主库执行 SELECT @@gtid_executed;查看GTID;

2. 原从库设置

  1. 查看备库复制进程状态,确认Slave_IO_Running,Slave_SQL_Running状态为YES,Seconds_Behind_Master为0, 则代表两边数据一致。

    show slave status

  2. 执行 SELECT GTID_SUBSET('<主库查询的GTID>', @@gtid_executed); 对比主从数据是否一致,如果输出结果为1,则表示一致;

  3. 停止复制进程,清空主从同步信息

    stop REPLICA;
    reset REPLICA all;

  4. 开启读写

    set global read_only=off;
    set global super_read_only=off;

  5. 根据实际情况设置数据库参数是否与原主库一致

3. 设置原主库为从库

  1. 原主库上开启主从复制
sql 复制代码
CHANGE REPLICATION SOURCE TO 
	SOURCE_HOST='172.17.0.7', 
	SOURCE_PORT = 3306, 
	SOURCE_USER='repl', 
	SOURCE_PASSWORD='123456', 
	GET_SOURCE_PUBLIC_KEY=1, 
	SOURCE_AUTO_POSITION=1;

start REPLICA;

SHOW REPLICA STATUS\G;
  1. 接下来进行一下验证步骤
  2. 完成~
相关推荐
oliver_sys_log6 分钟前
绕过 Yearning 查询体验限制:我做了一个 DataGrip 只读 SQL 代理
后端·mysql
山岚的运维笔记2 小时前
mysql 专业笔记 -- 第 17 章:连接:连接三个具有相同名称 ID 的表
运维·数据库·笔记·后端·学习·mysql·dba
bksczm2 小时前
从 “什么是 MySQL“ 到库与表的完整操作(MySQL基础篇)
linux·数据库·mysql
hoho_122 小时前
docker中升级mysql到最新版本
mysql·docker·容器
Linux-lucky3 小时前
36-Linux学习之旅之MySQL主从复制
linux·运维·学习·mysql·ubuntu
kyrie_sakura4 小时前
MySQL数据库学习笔记3--关联(联合)查询
数据库·学习·mysql
石小千5 小时前
MySQL 8.4设置密码策略
数据库·mysql
蜡台6 小时前
# 已解决|MySQL 8\.4\.11 密码正确仍报错1045 \(28000\) Access denied 终极修复方案
android·mysql·adb
leoZ2316 小时前
2026-09-08-mysql-57-init-walkthrough
前端·javascript·数据库·vue.js·opencv·mysql·adb
她说..6 小时前
MySQL 与 Java 的 JSON 数据处理
java·mysql·json·springboot