mysql реплицирует представление не будет работать

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

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

Есть идеи, как я могу это решить?

Спасибо,


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


Ответы (1)


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

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

person utdrmac    schedule 21.08.2015