MySQL复制错误'如果在查询时启用了日志记录,则无法'更改'日志表

Col*_*tor 22 mysql replication database-replication mysql-error-1064

MySQL复制因最后一个错误而中断

Last_Errno:1580 Last_Error:错误'如果在查询时启用了日志记录,则无法'更改'日志表.默认数据库:'mysql'.

似乎这是运行版本5.1.61的mysql_upgrade的错误我发现了一些错误报告,但是一旦在主服务器上执行了升级,就找不到如何解决这种情况.

有任何想法吗?

参考:http : //bugs.mysql.com/bug.php? id = 39133 http://bugs.mysql.com/bug.php?id=43579 http://bugs.mysql.com/bug.php? ID = 46638

Col*_*tor 39

似乎我会回答我自己的问题.登录时尝试更改日志表会创建错误.我真的不明白MASTER如何执行该查询,因为它具有相同的日志记录,如果确实如此,那么为什么SLAVE不能这样做呢?我很乐意阅读解释,但现在让我们专注于解决方案.

要查看打破复制执行的错误

显示SLAVE STATUS\G,您将看到查询出现问题

你现在可以阻止奴隶了

停止奴役;

禁用相关日志(不要复制+粘贴,但请先检查自己的配置!):

SET GLOBAL slow_query_log ='OFF';

重启奴隶

开始离开;

看到没有显示错误

SHOW SLAVE STATUS\G

并再次启用相关日志:

SET GLOBAL slow_query_log ='ON';

如果这有帮助,请告诉我.

  • 不需要禁用sql_log_bin. (8认同)
  • 禁用sql_log_bin是不必要的,比临时禁用slow_query_log更危险.Daniel Caillibaud的回答更安全. (2认同)

小智 23

我有一个主 - 主复制,所以我不能停止奴隶上的二进制日志但是

STOP SLAVE;
SET GLOBAL slow_query_log = "OFF";
START SLAVE;
SET GLOBAL slow_query_log = "ON";
Run Code Online (Sandbox Code Playgroud)

解决了我的pb