设置如下:我在 Rackspace 中有一个 MySQL DB 集群,我已经使用它来复制到多个数据中心的多个从属服务器。我正尝试将 AWS 的 Aurora 与 MySQL 前端一起使用,我之前曾使用过,但现在复制中断了。这是我看到的错误
Last_Errno:1146
Last_Error:查询时出现错误“表‘SOME_DB_NAME2.segment’不存在”。默认数据库:“SOME_DB_NAME2”。查询:“DELETE FROM segment
WHERE 1”
问题是,我只导入了一个名为 SOME_DB_NAME1 的数据库,而不是 SOME_DB_NAME2。因此,我得到的关于数据库中根本不存在的表的错误确实很奇怪。
我从 Rackspace DB 集群导出了 1 个数据库以设置复制,当我将该 1 个数据库导入 Aurora 并启动复制时,它几乎立即失败并给出 Errno:1146,而这个表甚至在我带来的 1 个数据库中都不存在。我使用我带来的 1 个数据库执行了 SHOW TABLES;,并确认有问题的表根本不存在。我不知道是否必须从 Rackspace 获取所有数据库并将它们带过来以启动复制,即使我只想要其中 1 个数据库...
答案1
在我看来,您需要在从服务器上使用 -replication-do-DB 语句,以便它只尝试从您尝试复制的数据库运行查询。否则,如注释中所述,它将尝试在所有数据库(甚至不存在的数据库)上运行语句并创建已识别的错误。