mysql 永久停止从属

mysql 永久停止从属

我使用复制将所有数据迁移到新服务器,然后我在 my.cnf 中注释掉 master_host、master_port 等(基本上所有与 master 相关的行),我发出了 stop slave 命令。
但是我重新启动 mysqld 后,复制过程又开始运行了!如何彻底停止它。

答案1

正确的做法是stop slave; reset slave;

“重置从属”是将擦除配置并阻止其重新连接的部分。

答案2

根据 MySQL 服务器版本的不同,该过程也不同。

  • 对于版本5.05.1,运行STOP SLAVECHANGE MASTER TO MASTER_HOST=''然后RESET SLAVE

在这些版本中,该RESET SLAVE命令将删除文件 master.info 和 Relay-log.info 以及大多数设置,但某些设置将重置为默认值,这很危险。如果再次启动复制,它将在不知道主服务器位置的情况下启动,因此将重新应用主服务器上仍然可用的所有日志。要正确删除有关主服务器的所有信息,您还需要运行该CHANGE MASTER命令。

  • 对于版本5.55.65.7这更简单,只需运行STOP SLAVE然后RESET SLAVE ALL

此处RESET SLAVE(不带ALL关键字)的行为方式相同 - 不删除所有信息。但是,CHANGE MASTER对于 5.5+ 版本也没有帮助,因此您必须小心并了解您当前正在使用的 MySQL 版本。

答案3

为了完全停止复制,你有两种方法

  • 发出带有虚假信息的“CHANGE MASTER”命令,这将彻底破坏复制
  • master.info删除mysql 根目录中的文件,这将删除复制信息

在任何一种情况下,您都需要稍后重新进行复制,记下所有复制数据,如最后位置和最后的源 bin 文件,以防您想要再次开始复制。

答案4

我通常会STOP SLAVE; CHANGE MASTER TO MASTER_HOST='';杀死一名奴隶。

相关内容