mysql如何启动和停止主从复制

来源:Python编程网作者:柬埔寨程序员头衔:程序员
导读:本期聚焦于小伙伴创作的《mysql如何启动和停止主从复制》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《mysql如何启动和停止主从复制》有用,将其分享出去将是对创作者最好的鼓励。

mysql主从复制是通过主库记录二进制日志、从库拉取并重放日志实现数据同步的机制,启停操作需要严格按照流程执行才能保证复制正常可用。

mysql如何启动和停止主从复制

主从复制启动前的准备条件

在启动主从复制前,需要完成以下基础配置:

  • 主库和从库的mysql版本尽量保持一致,避免版本差异导致兼容性问题
  • 主库开启二进制日志功能,并且设置唯一的server-id
  • 从库设置唯一的server-id,且不能和主库的server-id重复
  • 主库创建用于从库同步的账号,并授予REPLICATION SLAVE权限
  • 获取主库当前的二进制日志文件名和位置点,用于从库初始化同步位点

mysql启动主从复制的完整流程

1. 主库配置操作

首先修改主库的配置文件,开启二进制日志,重启mysql服务后生效:

-- 主库配置文件my.cnf添加以下内容
[mysqld]
log-bin=mysql-bin
server-id=1
-- 重启后查看主库状态,获取二进制日志信息
SHOW MASTER STATUS;

执行上述命令后会得到类似如下的结果,记录下File和Position的值:

FilePositionBinlog_Do_DBBinlog_Ignore_DB
mysql-bin.000003156

接着创建同步账号并授权:

-- 创建同步用户,密码设置为repl_password
CREATE USER 'repl_user'@'192.168.0.%' IDENTIFIED BY 'repl_password';
-- 授予复制权限
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'192.168.0.%';
-- 刷新权限
FLUSH PRIVILEGES;

2. 从库配置操作

修改从库配置文件,设置唯一的server-id,重启mysql服务:

-- 从库配置文件my.cnf添加以下内容
[mysqld]
server-id=2

重启后使用CHANGE MASTER TO语句配置主库连接信息和同步位点:

CHANGE MASTER TO
MASTER_HOST='192.168.0.10', -- 主库IP地址
MASTER_USER='repl_user', -- 之前创建的同步账号
MASTER_PASSWORD='repl_password', -- 同步账号密码
MASTER_LOG_FILE='mysql-bin.000003', -- 主库SHOW MASTER STATUS得到的File值
MASTER_LOG_POS=156; -- 主库SHOW MASTER STATUS得到的Position值

3. 启动主从复制

配置完成后,在从库执行启动复制线程的命令:

-- 启动从库的IO线程和SQL线程
START SLAVE;
-- 查看从库复制状态
SHOW SLAVE STATUSG

查看状态时需要关注两个关键字段:Slave_IO_RunningSlave_SQL_Running,如果两个字段的值都是Yes,说明主从复制已经正常启动。

mysql停止主从复制的操作步骤

如果需要停止主从复制,比如进行从库维护或者调整复制配置,可以在从库执行以下命令:

-- 停止从库的IO线程和SQL线程
STOP SLAVE;
-- 如果需要清除从库的同步配置信息,可以执行
RESET SLAVE ALL;

注意STOP SLAVE只是暂停复制线程,不会删除同步配置,后续执行START SLAVE可以继续启动复制。而RESET SLAVE ALL会清除所有同步相关的配置和日志信息,执行后需要重新配置才能启动复制。

操作注意事项

  • 启动复制前一定要确认主库的二进制日志信息和从库配置的位点完全匹配,否则会导致复制失败
  • 停止复制前如果有未同步的事务,需要先确认事务是否已经全部重放完成,避免数据不一致
  • 如果复制过程中出现错误,可以先停止复制,排查错误原因后再重新启动,不要直接强制启动
  • 主从复制启动后,不要随意修改从库的server-id,否则会导致复制异常
主从复制的启停操作都需要谨慎执行,操作前建议先备份相关数据,避免误操作导致数据丢失。

mysql主从复制start_slavestop_slavechange_master_to修改时间:2026-06-11 02:09:27

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。