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 */ ,清除掉它的所有从库信息。