Spec-Zone .ru
спецификации, руководства, описания, API
|
Следующее применяется к репликации между серверами MySQL, которые используют различные наборы символов:
Если ведущее устройство использует MySQL 4.1, следует всегда
использовать тот же самый глобальный набор символов и
сопоставление на ведущем устройстве и ведомом устройстве, независимо от ведомой версии MySQL. (Ими
управляют --character-set-server
и --collation-server
опции.) Иначе, можно получить двойные ключевые
ошибки на ведомом устройстве, потому что ключ, который уникален в основном наборе символов, не мог бы
быть уникальным в ведомом наборе символов. Отметьте, что это не повод для беспокойства, когда ведущее
устройство и ведомое устройство являются оба MySQL 5.0 или позже.
Если ведущее устройство старше чем MySQL 4.1.3, набор символов любого клиента
никогда не должен делаться отличающимся от своего глобального значения, потому что это изменение набора
символов не известно ведомому устройству. Другими словами клиенты не должны использовать SET NAMES
, SET CHARACTER SET
, и т.д. Если и
ведущее устройство и ведомое устройство 4.1.3 или более новы, клиенты могут свободно установить значения
сеанса для переменных набора символов, потому что эти настройки пишутся двоичному журналу и так известны
ведомому устройству. Таким образом, клиенты могут использовать SET NAMES
или SET CHARACTER SET
или может установить переменные такой как collation_client
или collation_server
. Однако, клиентам препятствуют изменить глобальное значение этих переменных; как утверждено ранее, у
ведущего устройства и ведомого устройства должны всегда быть идентичные глобальные значения набора
символов. Это - истина, используете ли Вы основанную на операторе или построчную репликацию.
Если у ведущего устройства есть базы данных с набором символов, отличающимся от
глобальной переменной character_set_server
значение, следует разработать Ваш CREATE TABLE
операторы так, чтобы они неявно не положились на набор
символов значения по умолчанию базы данных. Хорошее обходное решение должно утвердить набор символов и
сопоставление явно в CREATE
TABLE
операторы.