Spec-Zone .ru
спецификации, руководства, описания, API

10.1.4. Наборы символов соединения и Сопоставления

Несколько наборов символов и системных переменных сопоставления касаются взаимодействия клиента с сервером. Некоторые из них были упомянуты в более ранних разделах:

Дополнительный набор символов и системные переменные сопоставления включаются в обработку трафика для соединения между клиентом и сервером. У каждого клиента есть связанный с соединением набор символов и системные переменные сопоставления.

"Соединение" - то, что Вы делаете, когда Вы соединяетесь с сервером. Клиент отправляет SQL-операторы, такие как запросы, по соединению с сервером. Сервер отправляет ответы, такие как наборы результатов или сообщения об ошибках, по соединению назад с клиентом. Это приводит к нескольким вопросам о наборе символов и обработке сопоставления для клиентских соединений, каждому из которых можно ответить с точки зрения системных переменных:

Клиенты могут подстроить настройки для этих переменных, или зависеть от значений по умолчанию (когда, можно пропустить остальную часть этого раздела). Если Вы не используете значения по умолчанию, следует изменить символьные настройки для каждого соединения с сервером.

Два оператора влияют на связанные с соединением переменные набора символов как на группу:

Отметить

ucs2, utf16, utf16le, и utf32 не может использоваться в качестве клиентского набора символов, что означает, что они не работают на SET NAMES или SET CHARACTER SET.

Клиентские программы MySQL mysql, mysqladmin, mysqlcheck, mysqlimport, и mysqlshow определите набор символов значения по умолчанию, чтобы использовать следующим образом:

Когда клиент соединяется с сервером, он отправляет имя набора символов, который он хочет использовать. Сервер использует имя к установленному character_set_client, character_set_results, и character_set_connection системные переменные. В действительности сервер выполняет a SET NAMES работа используя имя набора символов.

С mysql клиентом, чтобы использовать набор символов, отличающийся от значения по умолчанию, Вы могли явно выполниться SET NAMES каждый раз Вы запускаете. Чтобы выполнить тот же самый результат более легко, добавьте --default-character-set установка опции в Вашу mysql командную строку или в Вашем файле опции. Например, следующая установка файла опции изменяет три связанных с соединением набора переменных набора символов на koi8r каждый раз Вы вызываете mysql:

[mysql]default-character-set=koi8r

Если Вы используете mysql клиент с, % автоповторно соединяются, включал (который не рекомендуется), предпочтительно использовать charset команда, а не SET NAMES. Например:

mysql> charset
        utf8Charset changed

charset проблемы a команды SET NAMES оператор, и также изменяет набор символов значения по умолчанию, который использует mysql, когда это повторно соединяется после того, как соединение отбросило.

Пример: Предположите это column1 определяется как CHAR(5) CHARACTER SET latin2. Если Вы не говорите SET NAMES или SET CHARACTER SET, тогда для SELECT column1 FROM t, сервер отсылает все значения назад для column1 использование набора символов, который определил клиент, когда он соединялся. С другой стороны, если Вы говорите SET NAMES 'latin1' или SET CHARACTER SET latin1 прежде, чем выйти SELECT оператор, сервер преобразовывает latin2 значения к latin1 прежде, чем отослать результаты назад. Преобразование может быть с потерями, если есть символы, которые не находятся в обоих наборах символов.

Если Вы хотите, чтобы сервер не выполнил преобразования наборов результатов или сообщений об ошибках, установить character_set_results к NULL или binary:

SET character_set_results = NULL;

Чтобы видеть значения набора символов и системных переменных сопоставления, которые применяются к Вашему соединению, используйте эти операторы:

SHOW VARIABLES LIKE 'character_set%';SHOW VARIABLES LIKE 'collation%';

Следует также рассмотреть среду, в пределах которой выполняются Ваши приложения MySQL. См. Раздел 10.1.5, "Конфигурируя Набор символов и Сопоставление для Приложений".

Для получения дополнительной информации о наборах символов и сообщениях об ошибках, см. Раздел 10.1.6, "Набор символов для сообщений об ошибках".