После установки сервера не стоит сразу создавать базы с данными, записанными в какой-либо кодировке русского языка. Начиная с 4.1 версии MySQL, задать кодировку можно не только для всего сервера, но и для отдельной базы, таблицы и даже столбца. Причем в вашей базе данных столбцы могут иметь как различную кодировку, так и разные правила сравнения данных.
Сравнение или сопоставление (от англ, collation)– это способ упорядочивания строк, например, по алфавиту. При этом можно учитывать регистр (строчная или заглавная попалась буква), а можно игнорировать его. При сопоставлении можно задать порядок в соответствии с кодировкой символов. Кроме того, вы можете указать, что сравнивать придется двоичный код или текст. Это все вместе и называется сопоставлением.
При установке сервера MySQL в Windows оказывается необходимым выполнить настройку сервера с учетом кодировки и способа сравнения данных в базе, иначе русские слова будут отображаться в виде строк из вопросительных знаков.
Для настройки MySQL откройте каталог, в который был установлен сервер, и найдите файл my.ini. В этот конфигурационный файл и необходимо внести приведенные далее директивы. Найдите в файле my.ini раздел, касающийся настройки самого сервера, он помечен символами [mysqld]. Строки, начинающиеся с символа решетки (#), являются комментариями. Найдите директиву default-character-set (использовать по умолчанию указанную кодировку), измените ее и добавьте еще 3 директивы так, чтобы этот фрагмент файла имел вид:
default-character-set=cp1251
character-set-server=cp1251
init-connect="SET NAMES cp1251"
skip-character-set-client-handshake
Две последние строки принудительно устанавливают кодировку ср1251 для всех запросов. Эти директивы позволяют создавать таблицы в кодировке ср1251 и благополучно выполнять запросы, используя русскоязычные строки.
ПРИМЕЧАНИЕ
Не стоит создавать столбцы, таблицы и базы с русскими именами. Иначе в самых неожиданных местах вас подстерегают ошибки и некорректная обработка данных.
Контрольные вопросы
1. Для чего нужна переменная PATH?
2. Кто такой «Суперпользователь root»?
3. Какие права у анонимного пользователя?
4. Как определить, что установка MySQL завершилась удачно?
5. Для каких элементов СУБД MySQL можно задавать кодировку?
6. Какой файл является конфигурационным в СУБД MySQL?