我正在运行双主MySQL复制,现在想移动到没有复制的单个数据库。如何完全禁用两个数据库上的复制?
我正在运行双主MySQL复制,现在想移动到没有复制的单个数据库。如何完全禁用两个数据库上的复制?
Answers:
要使用主-主设置完全禁用复制,应在每个从属上执行以下操作:
STOP SLAVE;
RESET SLAVE;
(RESET SLAVE ALL;
用于MySQL 5.5.16及更高版本)SLAVE STATUS
即使RESET SLAVE
发出命令,它也会报告有关查询的旧复制信息。要了解有关监视或远程配置管理工具的重要信息。在CentOS 6.5上使用MySQL 5.5.38的已确认行为。
我知道这是一个老问题,但我发现我还必须重置从属变量。如果按照建议使用“ blah”,服务器将尝试在启动时查找服务器“ blah”。
更改
MASTER
为MASTER_HOST='',MASTER_USER='',MASTER_PASSWORD='';
您可以验证计算机不再是从机
SHOW SLAVE STATUS \G;
CHANGE MASTER TO MASTER_HOST=''
现在设置会引发错误。
在从属服务器上:
无需在主服务器或从服务器上重新启动MySQL。完整的文档可以在MySQL参考手册的第19节中找到。
我建议保留其余的复制设置,以防您决定恢复到以前的配置。这样,您只需要将数据推入并重置从属位置(不要忘记删除skip-slave-start),而不必重新创建整个设置。
不论MySQL版本如何,最完整的方法如下
cd /var/lib/mysql
service mysql stop
rm -f master.info relay-*`
service mysql start
这必须适用于最新版本,因为对于MySQL 5.5,复制设置仍会保留在RAM中。
我刚刚回答了一个与此类似的问题:如何将MySQL以前的从服务器更改为主服务器,并删除从机状态信息?
仅编辑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文件中没有该配置信息,否则,在下次重新启动服务器时,将重新启用日志记录。
一个答案在这里:
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。
我将此添加到Harrison Fisk的答案中:
如果使用过,RESET SLAVE ALL;
则无需重新启动。
此外,您可能希望启用已在从属服务器上禁用的事件:
select * from information_schema.events where status = 'SLAVESIDE_DISABLED';
对于每个人:
alter event <event_name> enable;