Error number: MY-013147; Symbol: ER_SERVER_SLAVE_IGNORED_TABLE; SQLSTATE: HY000
Message: Slave SQL thread ignored the query because of replicate-*-table rules
Error number: MY-013147; Symbol: ER_SERVER_SLAVE_IGNORED_TABLE; SQLSTATE: HY000
错误说明
MY-013147:ER_SERVER_SLAVE_IGNORED_TABLE错误通常表明,MySQL事件复制出现了问题。在复制延迟模式下,它意味着MySQL无法继续复制发生在延迟以后的事件,因为他们落入了延迟以后的事件(实际上是要求从MySQL服务器的事件复制过程)。
常见案例
当启用MySQL复制模式时,该错误可能会出现。在这种情况下,表只能在MySQL服务器或复制实例上看到,但不会在另一台服务器中可见,也就是抵达延迟之前的表将仅在主服务器上可以看到,而任何在延迟之后所创建的表或引起错误的任何更改则不会在从服务器上可见。
解决方法
最佳方案是,检查主服务器上的日志,以查看是否存在某种错误,这可能会影响MySQL实例的复制能力。另外,您可以针对主服务器上的表检查日志,看看是否有任何崩溃或复制错误。完成此检查后,可以使用SHOW SLAVE STATUS检查从服务器是否检测到任何异常。
有时,此复制错误可能与MySQL会话中使用的表或查询有关,例如在某个会话中创建和删除表,或在查询中,在某个会话中插入或更新多个表,但是在另一个会话中删除其中一个表时,此错误可能会出现。在这种情况下,需要重新启用复制,或在主实例上手动重新构建复制模式。
另外,要关闭超时模式,可以运行SLAVE STOP命令,或从延迟模式切换到秒模式,有助于解决造成ER_SERVER_SLAVE_IGNORED_TABLE的问题。