MySQL从机将生产数据库名称附加到新视图

我有一个与生产对象不同的名字的奴隶数据库。 (我们正在使用replicate-rewrite-db选项。)

当我从奴隶(我做的开发副本)运行一个mysqldump时,两个数据库视图的数据库名称附加到他们。 我无法使用转储文件创build另一个副本,而无需手动编辑它。

如果我从生产副本运行相同的mysqldump,则所有内容都会清理干净。 所以由于某种原因,奴隶错误地创造了这两个观点。 (其他四个视图是在复制build立之前创build的,我相信解释了这种差异。我已经确认复制是同步的。)

从站的mysqldump片段:

 /*!50001 VIEW `database_slave`.`view_company` AS select `database`.`company`.`id` AS `id`, `database`.`company`.`name` AS `name`,`database`.`company`.`state` AS `state`, 

mysqldump的相同片段,但从生产(好,干净):

 /*!50001 VIEW `view_company` AS select `company`.`id` AS `id`, `company`.`name` AS `name`,`company`.`state` AS `state`, 

我可以解决这个问题,而不必从产品转储到奴隶?

看起来你已经命中mysql的bug: http ://bugs.mysql.com/bug.php?id=40345考虑升级MySQL到最近的5.1.X版本。

我遇到的问题的根源是因为使用了replicate-rewrite-db选项。 复制会保留视图内数据库的名称,因此使用不同的名称复制到数据库会导致此问题。

我们已经消除了replicate-rewrite-db选项的使用,为此和其他原因确定replicate-rewrite-db是一个JBYCDMYS选项(因为你可以,并不意味着你应该)。