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

#1 楼

要使用主控主设置完全禁用复制,您应该在每个从属服务器上执行以下操作:


和更高版本)
编辑my.cnf并删除所有涉及“ master -...”或“ replicate -...”选项的信息(如果存在)。 my.cnf中可能没有任何内容,因为复制也可以动态设置。
重启mysqld。


评论


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

– tanyehzheng
2013年12月3日,下午2:27

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

–克里斯·拉斯基(Chris Laskey)
14年7月16日在17:17



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

–朱伟
2015年12月10日,下午3:13

#2 楼

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


MASTER更改为MASTER_HOST='',MASTER_USER='',MASTER_PASSWORD='';


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

SHOW SLAVE STATUS \G;


评论


这不再起作用。现在将CHANGE MASTER TO MASTER_HOST =设置为会引发错误。

–灰色
2012年7月18日在16:15

错误1210(HY000):MASTER_HOST的参数不正确

– Kazimieras Aliulis
2014年7月18日,下午3:12

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

–马丁(Martijn)
15年2月16日在9:23

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

– RolandoMySQLDBA
2015年9月28日14:52

#3 楼

在从属服务器上:


运行“停止从属”以停止复制。
运行“重置从属”以告诉从属服务器忘记其在二进制文件中的位置从主服务器检索到的日志。
在my.cnf中添加“ skip-slave-start”,以防止在重新启动MySQL时启动复制。主或从。完整的文档可以在MySQL参考手册的第19节中找到。

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

#4 楼

无论使用哪种MySQL版本,执行此操作的最完整方法如下:

5.5。

我刚刚回答了一个类似的问题:如何将MySQL以前的从服务器更改为主服务器,并删除从服务器状态信息?

#5 楼

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

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

#6 楼

一个答案在这里:

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。

#7 楼

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

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

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


对于每个人:

alter event <event_name> enable;