MySQL复制:暂时阻止复制到从属的特定SQL语句?

问题描述 投票:7回答:2

我想连接并执行一个(有时是几个)SQL语句,而不是那些复制到从属语句。

我没有复制 - 做或复制 - 忽略配置,所以我不能use一些非复制数据库发送命令。我知道:

set global sql_slave_skip_counter = 1

但那是在奴隶身上。我希望能够在主服务器上运行类似的命令,并且不会将以下N个命令发送给从服务器(我猜这意味着不会记录在binlog中)。

mysql replication
2个回答
15
投票

SET sql_log_bin=0正是你要找的。需要SUPER priv。,并且会关闭会话中的命令记录,直到您将其设置回1.请参阅http://dev.mysql.com/doc/refman/5.0/en/server-session-variables.html#sysvar_sql_log_bin

SET sql_log_bin=0;
UPDATE ... ;
INSERT ... ;
DELETE ... ;
SET sql_log_bin=1 ;

2
投票

小心.....!

SET sql_log_bin=0;

Master MySQL服务器会在一段时间后(约一分钟后)自动将此0值设置为1。它不会等到我们明确地将它设置为1.所以根据我的经验,这根本不是一个安全的方法来关闭二进制日志.....

© www.soinside.com 2019 - 2024. All rights reserved.