2015-07-03 3 views
0

Я пытаюсь реплицировать определенный вид на slave mysql, игнорируя базовую таблицу. Я создал представление, которое выбирает * из конкретной таблицы в конкретной БД. В ведомом my.cnf я ограничила репликацию следующего:mysql replicate view не работает

replicate-do-db=DBNAME 
replicate-ignore-table=TABLENAME 

Когда я начинаю репликацию на рабе, я получаю сообщение об ошибке 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 представление может быть реплицировано, даже если таблица игнорируется.

Любая идея, как я могу это решить?

Спасибо,

ответ

2

Без базовой таблицы, VIEW не будет работать. Вы можете игнорировать базовую таблицу в репликации, чтобы новые данные не поступали, но эта таблица должна существовать для функции VIEW.

VIEWs в MySQL - это не что иное, как простые псевдонимы для операторов SELECT. Они не материализованы, данные не хранятся внутри и, таким образом, выполняют их базовый SELECT каждый раз, когда вы выбираете из VIEW.