由于执行此操作时二进制日志将具有特定格式,因此尽管MySQL(eh Oracle [仍然无法摆脱我的声音])构建了此功能,但您可能决定不一起使用这两种格式。
要完全安全地播放它而无需重新启动mysql,请尝试以下操作:
FLUSH TABLES WITH READ LOCK;
FLUSH LOGS;
SET GLOBAL binlog_format = 'MIXED';
FLUSH LOGS;
UNLOCK TABLES;
这将以“ MIXED”格式保留最后一个binlog。倒数第二个(紧随其后的)二进制日志的存在仅是关闭前一个格式的最后一个二进制日志。
FLUSH LOGS;
一旦UNLOCK TABLES;
执行,第一个之前的所有现有会话将开始写入最后一个二进制日志。
试试看 !!!
警告
在应得的信贷额度上给予信贷,我的答案真的是@带@Jonathan的答案。我只是关闭并打开二进制日志。他因首先提出来而获得+1。
更新美国东部时间2011-10-12 13:58
如果您对活动的主服务器执行此操作,并且从该主服务器复制了一个或多个从服务器,则需要注意中继日志也采用新格式。您可以执行以下操作:
在从站上,运行 STOP SLAVE;
在Master上运行以下命令:
FLUSH TABLES WITH READ LOCK;
FLUSH LOGS;
SET GLOBAL binlog_format = 'MIXED';
FLUSH LOGS;
UNLOCK TABLES;
在从站上,运行 START SLAVE;
运行STOP SLAVE;
并START SLAVE;
轮换中继日志,并导致新条目被复制到任何格式。您可能还希望在从属服务器中应用binlog_format更改。