关闭MySQL主从复制需在从库执行三步:一查状态(SHOW SLAVE STATUS\G确认IO/SQL线程运行中);二停线程(STOP SLAVE);三清配置(RESET SLAVE ALL彻底清除元数据)。

关闭 MySQL 主从复制,核心是停掉从库的复制线程,并清理相关配置。操作主要在从库执行,主库一般无需改动(除非你还要关 binlog 或设只读)。整个过程分三步:确认状态、停止复制、清除配置。
一、先查清楚当前复制是否在运行
登录从库 MySQL,执行:
SHOW SLAVE STATUS\G
重点看这两行:
- Slave_IO_Running:应为 Yes(正在拉取主库日志)
- Slave_SQL_Running:应为 Yes(正在回放中继日志)
如果任一为 No,说明复制已异常中断,可跳过“停止”步骤,直接进入清理环节。
二、停止复制线程
在从库执行命令,按需选择:
- STOP SLAVE; —— 同时停 IO 和 SQL 线程(最常用)
- STOP SLAVE IO_THREAD; —— 只停拉日志,保留中继日志待后续回放
- STOP SLAVE SQL_THREAD; —— 只停执行,继续缓存新日志(适合临时暂停同步)
执行后再次运行 SHOW SLAVE STATUS\G,确认两个 Running 字段都变成 No。
三、彻底清除主从关系配置
若确定不再恢复复制,建议清空所有复制元数据:
- RESET SLAVE ALL; —— 推荐用于 MySQL 5.7 及以上,清空 master.info、relay-log.info 等全部文件,重置为“干净从库”
- RESET SLAVE; —— 旧版本常用,保留部分临时文件,重启后可能自动尝试连接(不推荐长期停用时使用)
执行后,SHOW SLAVE STATUS\G 将返回空结果,表示复制信息已清除。
四、可选:禁用配置文件中的复制参数
编辑从库的 my.cnf(如 /etc/my.cnf),注释或删除以下常见项:
- # server_id = 2(可保留,但非必须)
- # relay-log = mysql-relay-bin
- # replicate-do-db = xxx
- # read_only = ON(如之前为防误写而开启,此时可关)
改完保存,**无需重启 MySQL** 即可生效(这些参数只影响下次启动行为)。若想彻底断开连接意图,重启更稳妥。
注意:主库不需要执行 STOP SLAVE(它本来就没有 slave 线程),也不建议随意执行 RESET MASTER(会清空所有 binlog,影响其他从库或备份)。










