文档解释
Error number: MY-010647; Symbol: ER_NDB_BINLOG_SKIPPING_DROP_OF_DB_CONTAINING_LOCAL_TABLES; SQLSTATE: HY000
Message: NDB Binlog: Skipping drop database ‘%s’ since it contained local tables binlog schema event ‘%s’ from node %d.
。
错误说明:
MY-010647 错误(ER_NDB_BINLOG_SKIPPING_DROP_OF_DB_CONTAINING_LOCAL_TABLES)主要表示一种在MySQL中的错误,该错误涉及到NDB集群以及MySQL二进制日志之间的关联。当程序尝试从NDB集群删除一个数据库但是该数据库中包含有本地表的时候,此时此错误就会被触发。
常见案例
这种常见的案例出现在MySQL主从复制中,其中主节点拥有NDB集群,而从节点拥有MySQL二进制日志,而且由于存在一些注册问题,MySQL客户端可能会试图从NDB集群中删除一个数据库,并且该数据库可能包含有本地表,而这种操作会导致上述的错误被触发。
解决方法:
第一步:在NDB集群中,首先需要将包含本地表的数据库中的表删除,或者移动到另一个数据库,这样才能保持NDB集群的稳定性。
第二步:当重点数据库中有本地表的时候,要确保让MySQL客户端使用DROP DATABASE ` 重点数据库名 ` 命令来更新MySQL二进制日志,这样才能确保在之后进行备份时能够获得稳定的SQL语句,并且可以正确地执行它们。
第三步:最后一步就是在MySQL服务器中重新启动MySQL二进制日志,这样,MySQL客户端就可以用DROP Databse命令来删除一个数据库,而不会引发MY-010647错误。