MySQL replication: temporarily prevent specific SQL statements replicating to the slaves?

怎甘沉沦 提交于 2019-12-22 05:07:07

问题


I want to connect and execute one (or sometimes several) SQL statements, and NOT have those replicated to the slaves.

I have no replicate-do or replicate-ignore configs, so I can't use some non-replicated database to send the commands from. And I know about:

set global sql_slave_skip_counter = 1

But that's on the slave. I'd like to be able to run a similar command on the master and have the following N commands not sent out to the slaves (which I guess means not logged in the binlogs, either).


回答1:


SET sql_log_bin=0 is what you're looking for. Requires SUPER priv., and will turn off logging of commands from your session until you set it back to 1. See 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:


BE CAREFUL.....!

SET sql_log_bin=0;

Master MySQL server automatically set this 0 value to 1 after a while(after about one minute). It does not wait until we explicitly set it to 1. So according to my experience this not a safe way to turn off binary logging at all.....!



来源:https://stackoverflow.com/questions/355202/mysql-replication-temporarily-prevent-specific-sql-statements-replicating-to-th

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!