代码改变世界

MySQL的reset slave与reset slave all

2017-10-31 19:26  abce  阅读(9790)  评论(0编辑  收藏  举报

reset slave是各版本Mysql都有的功能,可以让slave忘记自己在master binary log中的复制位置。

 

reset slave命令主要完成以下工作内容:
  -删除master.info和relay-log.info文件
  -删除所有的relay log(包括还没有应用完的日志)
  -创建一个新的relay log文件
  -将复制延迟选项 master_delay设置为0

reset slave不会修改gtid_executed、gtid_purged的值。

在执行reset slave之前,必须执行stop slave。

在mysql 5.6之后,reset slave不会修改任何复制配置参数,所有的连接信息仍然保留在内存中,包括主库地址、端口、用户、密码等。也就是说在执行reset slave之后还可以直接运行start slave命令而不必重新输入change master to命令,而运行show slave status也仍和没有运行reset slave一样,有正常的输出。

reset slave之后关闭mysqld就会清除连接参数。


在mysql 5.6.3之后,可以使用reset slave all来清除连接参数,运行show slave status就输出为空了。

mysql 5.6.7之后,reset slave会隐式提交事务。 

 

 

运行reset slave命令需要reload权限。MHA在做故障切换时,就会在新主上运行命令RESET SLAVE /*!50516 ALL */ ,清除掉它的所有从库信息。