Spec-Zone .ru
спецификации, руководства, описания, API
|
Можно встретиться с проблемами, когда Вы пытаетесь тиражироваться от ведущего устройства старшего возраста к
более новому ведомому устройству, и Вы используете идентификаторы на ведущем устройстве, которые являются
зарезервированными словами в более новой версии MySQL, работающей на ведомом устройстве. Пример этого использует
названный столбец таблицы current_user
на 4.0 ведущих устройствах, которые
тиражируются к 4.1 или более высокому ведомому устройству потому что CURRENT_USER
зарезервированное слово, начинающееся в MySQL 4.1. Репликация может перестать работать в таких случаях с Ошибкой
1064, у Вас есть ошибка в Вашем синтаксисе SQL..., даже
если база данных или таблица назвали использование зарезервированного слова, или таблица, называя столбец,
используя зарезервированное слово исключается из репликации. Это - то, вследствие того, что
каждое событие SQL должно быть проанализировано ведомым устройством до выполнения, так, чтобы ведомое устройство
знало, на какой объект базы данных или объекты влияли бы; только после того, как событие анализируется, может
ведомое устройство применять любые правила фильтрации, определенные --replicate-do-db
, --replicate-do-table
, --replicate-ignore-db
, и --replicate-ignore-table
.
Чтобы работать вокруг проблемы базы данных, таблица, или имена столбцов на ведущем устройстве, которое было бы расценено как зарезервированные слова ведомым устройством, делает одно из следующего:
Используйте один или больше ALTER TABLE
операторы на ведущем устройстве, чтобы изменить названия
любых объектов базы данных, где эти имена считали бы зарезервированными словами на ведомом устройстве, и
изменили бы любые SQL-операторы, которые используют старые названия, чтобы использовать новые имена
вместо этого.
В любых SQL-операторах, используя эти имена объектов базы данных, напишите имена
как идентификаторы в кавычках, используя символы обратной галочки (`
).
Для списков зарезервированных слов версией MySQL см.