MySQL: различия между версиями

Материал из ALT Linux Wiki
(викификация)
Нет описания правки
Строка 1: Строка 1:
[[Категория:Admin]]
[[Категория:Admin]][[Category:MySQL]]
{{stub}}
{{stub}}


Строка 5: Строка 5:


В ALT Linux кодировка, передаваемая через параметр -C в mysqld, задаётся через CHSET в /etc/sysconfig/mysqld, либо определяется по системной локали.
В ALT Linux кодировка, передаваемая через параметр -C в mysqld, задаётся через CHSET в /etc/sysconfig/mysqld, либо определяется по системной локали.
Это --character-set-server — кодировка, используемая '''сервером''' по умолчанию.
Это --character-set-server — кодировка, используемая '''сервером''' по умолчанию.
Как нужно настроить сервер, чтобы по умолчанию кодировка была cp1251, но это можно было переопределять на utf8?
Как нужно настроить сервер, чтобы по умолчанию кодировка была cp1251, но это можно было переопределять на utf8?



Версия от 10:58, 5 февраля 2009

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


О кодировках в MySQL 5.x

В ALT Linux кодировка, передаваемая через параметр -C в mysqld, задаётся через CHSET в /etc/sysconfig/mysqld, либо определяется по системной локали. Это --character-set-server — кодировка, используемая сервером по умолчанию. Как нужно настроить сервер, чтобы по умолчанию кодировка была cp1251, но это можно было переопределять на utf8?

Кодировку и таблицу сортировки, используемые по умолчанию в сервере, лучше задавать в my.cnf:

character_set_server = utf8
collation_server = utf8_general_ci

Для клиентов (например, команды mysql) кодировка указывается в секции [client] файла my.cnf:

[client]
default-character-set=cp1251

При открытии соединения с базой нужно указывать кодировку, в которой клиент будет работать с базой. Это можно сделать строкой

init-connect="SET NAMES cp1251"

в my.cnf. Команда set names устанавливает при подсоединении такие переменные как set_client, set_result, collaction_client, что позволяет серверу корректно воспринимать запросы и возвращать ответы.

Обратите внимание, что имена (таблиц и полей) хранятся в сервере в кодировке utf8 и это неизменяемо. Что насчёт их кодировки в запросе?

Ссылки

Оптимизация настроек MySQL + Apache для нагруженного сервера