如何完全禁用MySQL复制


64

我正在运行双主MySQL复制,现在想移动到没有复制的单个数据库。如何完全禁用两个数据库上的复制?

Answers:


81

要使用主-主设置完全禁用复制,应在每个从属上执行以下操作:

  1. STOP SLAVE;
  2. RESET SLAVE;RESET SLAVE ALL;用于MySQL 5.5.16及更高版本)
  3. 编辑my.cnf并删除所有引用“ master -...”或“ replicate -...”选项的信息(如果存在)。my.cnf中可能没有任何内容,因为还可以动态设置复制。
  4. 重新启动mysqld。

如果复制是动态设置的,则步骤1和2应该就足够了。
tanyehzheng

4
在MySQL重新启动之前,SLAVE STATUS即使RESET SLAVE发出命令,它也会报告有关查询的旧复制信息。要了解有关监视或远程配置管理工具的重要信息。在CentOS 6.5上使用MySQL 5.5.38的已确认行为。
克里斯·拉斯基

我做了这些步骤,但是为什么不活动的从站仍然在mtop命令列表中?如何将其从列表中删除?
朱Chu

18

我知道这是一个老问题,但我发现我还必须重置从属变量。如果按照建议使用“ blah”,服务器将尝试在启动时查找服务器“ blah”。

更改MASTERMASTER_HOST='',MASTER_USER='',MASTER_PASSWORD='';

您可以验证计算机不再是从机

SHOW SLAVE STATUS \G;

5
这不再起作用。CHANGE MASTER TO MASTER_HOST=''现在设置会引发错误。
灰色

错误1210(HY000):MASTER_HOST的参数错误
Kazimieras Aliulis 2014年

在CentOS 6(MySQL 5.1)上为我工作,此SHOW SLAVE STATUS返回一个空集,而在RESET SLAVE之后,它仍然显示一些主信息。
Martijn 2015年

这个答案对MySQL 5.1用户仍然有效(可能仍然存在)。
RolandoMySQLDBA 2015年

12

在从属服务器上:

  1. 运行“停止从站”以停止复制。
  2. 运行“重置从服务器”,告诉从服务器忘记它在从主服务器检索的二进制日志中的位置。
  3. 在my.cnf中添加“ skip-slave-start”,以防止在重新启动MySQL时启动复制。

无需在主服务器或从服务器上重新启动MySQL。完整的文档可以在MySQL参考手册的第19节中找到。

我建议保留其余的复制设置,以防您决定恢复到以前的配置。这样,您只需要将数据推入并重置从属位置(不要忘记删除skip-slave-start),而不必重新创建整个设置。



6

仅编辑my.cnf文件不足以禁用复制。实际上,它不再是启用它的推荐方法。将条目放入my.cnf文件仅对下一次启动有效,并且行为就像您已将命令输入mysql客户端一样:

mysql>将master更改为master_host ='blah',master_user ='blah',master_password ='blah'...;

这两种方法都会在数据目录中创建一个名为master.info的文件。只要该文件存在,服务器将尝试使用那里的详细信息进行复制。“重置从站”;第一个答案中列出的命令将摆脱master.info文件(以及relay-log.info文件)。如第一个答案中所述,您还希望确保my.cnf文件中没有该配置信息,否则,在下次重新启动服务器时,将重新启用日志记录。


5

一个答案在这里:

http://www.oops.net.br/~bac/bam/canopy_repl_setup.htm

*编辑MySQL配置文件:/etc/my.cnf,并在标题为[mysqld]的部分中删除以下7行:

port=3306
log-bin
server-id=1
master-host=10.0.0.2
master-user=server_1_repl
master-password=server_1_passwd
master-port=3306*

重新启动MySQL。


4

我将此添加到Harrison Fisk的答案中:

如果使用过,RESET SLAVE ALL;则无需重新启动。

此外,您可能希望启用已在从属服务器上禁用的事件:

select * from information_schema.events where status = 'SLAVESIDE_DISABLED';

对于每个人:

alter event <event_name> enable;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.