我试图在忽略基表的同时复制mysql slave上的特定视图。 我创建了一个视图,从特定数据库的特定表中选择*。 在slave my.cnf中,我将复制限制为以下内容:
replicate-do-db=DBNAME
replicate-ignore-table=TABLENAME
当我在slave上启动复制时,我收到一个sql错误:
Last_SQL_Error: Error 'TABLENAME 'DBNAME.TABLENAME' doesn't exist' on query. Default database: 'DBNAME'. Query: 'CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `TABLENAMEVIEW` AS SELECT * FROM TABLENAME'
我正在使用mysql 5.5.1,并且根据以下http://dev.mysql.com/doc/refman/5.5/en/replication-features-views.html,即使忽略该表,也可以复制视图。
知道如何解决这个问题吗?
谢谢,
答案 0 :(得分:2)
如果没有基表,VIEW将无效。您可以忽略复制中的基表,以便不会有新数据,但该表必须存在才能使VIEW正常运行。
MySQL中的VIEW只不过是SELECT语句的简单别名。它们没有具体化,没有数据存储在其中,因此每次从VIEW中选择时都会执行它们的基础SELECT。