mysql копирането на изглед няма да работи

Опитвам се да репликирам конкретен изглед на mysql slave, като същевременно игнорирам базовата таблица. Създадох изглед, който избира * от конкретна таблица в конкретна DB. В подчинения 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 изглед може да бъде репликиран дори ако таблицата е игнорирана.

Някаква идея как мога да разреша това?

Благодаря,


person Raja Assaf    schedule 03.07.2015    source източник


Отговори (1)


Без основната таблица VIEW няма да работи. Можете да игнорирате базовата таблица при репликация, така че да не влизат нови данни, но тази таблица трябва да съществува, за да функционира VIEW.

VIEWs в MySQL не са нищо повече от прости псевдоними за оператори SELECT. Те не са материализирани, в тях не се съхраняват данни и по този начин изпълняват техния основен SELECT всеки път, когато SELECT от VIEW.

person utdrmac    schedule 21.08.2015