MySQL永远停止奴隶

我用复制迁移到一个新的服务器的所有数据,然后我注意到master.cn,master_port等(基本上所有行相关的主)在my.cnf,我发出停止奴隶。
不过我重启mysqld之后,复制过程再次运行! 如何阻止它的好。

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

“重置从属”是将擦除configuration,并防止重新连接的一部分。

该过程根据MySQL服务器版本而不同。

  • 对于V5.0V5.1 ,运行STOP SLAVECHANGE MASTER TO MASTER_HOST='' ,然后RESET SLAVE

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

  • 对于版本5.5,5.65.7更容易,只需运行STOP SLAVE ,然后重新启动RESET SLAVE ALL

这里的RESET SLAVE (没有ALL关键字)的行为方式是相同的 – 不删除所有的信息。 然而, CHANGE MASTER对5.5+也没有帮助,所以你必须小心并知道你正在使用哪个MySQL版本。

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

  • 用假信息发出一个“CHANGE MASTER”命令,这将会破坏复制
  • 删除位于你的mysql根目录的文件master.info ,这将删除复制信息

在任何这些情况下,您需要稍后重新进行复制,写下所有复制数据(如最后一个位置和最后一个源文件bin文件),以防万一要再次开始复制。

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