MySQL常用的几个reset

reset master

删除所有index file 中记录的所有binlog 文件,将日志索引文件清空,创建一个新的日志文件,这个命令通常仅仅用于第一次用于搭建主从关系的时的主库。

注意: reset master 不同于purge binary log的两处地方

1.reset master 将删除日志索引文件中记录的所有binlog文件,创建一个新的日志文件 起始值从000001 开始,然而purge binary log 命令并不会修改记录binlog的顺序的数值

2.reset master 不能用于有任何slave 正在运行的主从关系的主库。因为在slave 运行时刻 reset master 命令不被支持,reset master 将master 的binlog从000001 开始记录,slave 记录的master log 则是reset master 时主库的最新的binlog,从库会报错无法找的指定的binlog文件。

reset slave

reset slave 将使slave 忘记主从复制关系的位置信息。该语句将被用于干净的启动, 它删除master.info文件和relay-log.info 文件以及所有的relay log 文件并重新启用一个新的relaylog文件。

使用reset slave之前必须使用stop slave 命令将复制进程停止。

注: 所有的relay log将被删除不管他们是否被SQL thread进程完全应用(这种情况发生于备库延迟以及在备库执行了stop slave 命令),存储复制链接信息的master.info文件将被立即清除,如果SQL thread 正在复制临时表的过程中,执行了stop slave ,并且执行了reset slave,这些被复制的临时表将被删除。

reset slave all

在 5.6 版本中 reset slave 并不会清理存储于内存中的复制信息比如  master host, master port, master user, or master password,也就是说如果没有使用change master 命令做重新定向,执行start slave 还是会指向旧的master 上面。

当从库执行reset slave之后,将mysqld shutdown 复制参数将被重置。

在5.6.3 版本以及以后 使用使用 RESET SLAVE ALL 来完全的清理复制连接参数信息。

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就输出为空了。

发表评论

相关文章