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

发布于 2024-07-09 17:28:09 字数 281 浏览 4 评论 0原文

我想连接并执行一个(或有时是多个)SQL 语句,并且不将这些语句复制到从属服务器。

我没有replicate-do 或replicate-ignore 配置,因此我无法使用某些非复制数据库来发送命令。 我知道:

set global sql_slave_skip_counter = 1

但那是在奴隶身上。 我希望能够在主服务器上运行类似的命令,并且不将以下 N 个命令发送到从服务器(我猜这意味着也没有记录在二进制日志中)。

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).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小兔几 2024-07-16 17:28:09

SET sql_log_bin=0 就是您要查找的内容。 需要超级权限,并且将关闭会话中的命令日志记录,直到您将其设置回 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 ;

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 ;
默嘫て 2024-07-16 17:28:09

当心.....!

SET sql_log_bin=0;

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

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.....!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文