mysql - 如何使用TRUNCATE语句避免MySql将其写入binlog?

标签 mysql database replication binlog

MySQL 似乎不支持 TRUNCATE 标志“NO_ WRITE_ TO_ BINLOG”。所以我必须等到延迟为0,然后停止复制,对表进行TRUNCATE,重置主服务器,然后再次开始复制。真的很痛苦。还有其他建议吗?

最佳答案

您可以使用该命令禁用 session 的二进制日志记录来执行您想要的操作。

SET SQL_LOG_BIN = 0;
TRUNCATE TABLE ;
SET SQL_LOG_BIN = 1;

这确实需要您拥有 SUPER 权限,因为您通过不向从属设备发送 TRUNCATE 来有效地中断复制。

关于mysql - 如何使用TRUNCATE语句避免MySql将其写入binlog?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/176319/

相关文章:

用于验证是否找到搜索脚本的 PHP 条件

mysql - 如何在 MySQL 中截取字符串的一部分?

mysql - 如何获取触发器的插入值

mysql - 哪个更快 : a lookup on a large denormalized table or a join between three smaller tables?

mysql - 数据库关系循环,如何打破呢?

mysql - 如何将事务性 MySQL 数据存入 SQL Server 数据库

mysql - 如何在 Fusion Tables 中编写 Where 查询

mysql - cakePHP自动从mysql中删除数据

CouchDB 过滤复制 - 删除文档

mysql - INSERT ... 使用 WHERE 进行重复的 key 更新?