4.6.1 Набор символов, применяющийся для записи данных и сортировки
По умолчанию в MySQL используется набор символов ISO-8859-1 (Latin1) с
сортировкой согласно шведским/финским правилам. Этот набор символов также
подходит для использования в США и Западной Европе.
Все стандартные исполняемые файлы MySQL компилируются с настройкой
--with-extra-charsets=complex
. Таким образом в файл помещается код,
позволяющий всем стандартным программам работать с набором символов
latin1
, а также многобайтовыми наборами символов. Другие наборы символов
могут загружаться из соответствующих файлов определений по необходимости.
Набор определяет, какие символы могут использоваться в именах, а также
способ сортировки значений в операторах ORDER BY
и GROUP BY
команды
SELECT
.
При запуске сервера можно изменить набор символов при помощи параметра
--default-character-set
. Выбрать доступные наборы символов можно при
помощи параметров --with-charset=charset
и --with-extra-charset=
list-of-charset | complex | all
, и файлов наборов символов, перечисленных
в SHAREDIR/charsets/Index
. See section 2.3.3 Типичные опции configure
.
При смене набора символов во время работы MySQL (что может одновременно
изменить и порядок сортировки) необходимо запустить команду myisamchk -r
-q
для всех таблиц. В противном случае индексы могут быть созданы в
неправильном порядке.
При подключении клиента к серверу MySQL сервер отправляет ему используемый
по умолчанию набор символов. На время соединения клиент переключается на
использование этого набора.
Для экранирования строк в SQL-запросе необходимо пользоваться функцией
mysql_real_escape_string()
. mysql_real_escape_string()
идентична старой
функции mysql_escape_string()
- во всем, кроме одного: в качестве первого
параметра она принимает дескриптор соединения MYSQL.
Если клиент был скомпилирован с набором путей, в которых не было пути
установки сервера, а настраивавший MySQL пользователь на включил в
исполняемый файл системы все наборы символов, клиенту необходимо сообщить
о местонахождении дополнительных наборов символов, которые нужны ему для
общения с сервером.
Сделать это можно путем внесения в файл настроек MySQL следующей строки:
[client]
character-sets-dir=/usr/local/mysql/share/mysql/charsets
путь в ней указывает на каталог, в котором хранятся динамические наборы
символов MySQL.
Заставить клиента использовать определенный набор символов можно следующим
образом:
[client]
default-character-set=character-set-name
но обычно этого не требуется.
Главы