似乎MySQL不支持TRUNCATE的标志“NO_ WRITE_ TO_ BINLOG”。所以我必须等到延迟为0,然后停止复制,使表的TRUNCATE,重置主服务器,然后再次启动复制。真的很痛苦。还有其他建议吗?
答案 0 :(得分:2)
您可以使用该命令禁用会话的二进制日志记录,以执行您想要的操作。
SET SQL_LOG_BIN = 0; TRUNCATE TABLE ; SET SQL_LOG_BIN = 1;
这确实要求您具有SUPER权限,因为您通过不将TRUNCATE发送到从属设备来有效地破坏复制。
答案 1 :(得分:0)
答案 2 :(得分:0)
不要轻易使用TRUNCATE,因为它基本上只是将数据丢弃在地板上而不记录它所做的事实。它在事务上是不安全的,无法从中恢复,因此它与复制不兼容。即使您在复制设置中设法使用TRUNCATE,您的复制数据也会损坏,或者最多无效。