Всем хай! Возникли непонятки с кодировками в mySQL и решил поднять тему.
Итак... Решил я поэкспериментировать с 5-ой версией (раньше жил на 4-ой). Всем абсолютно доволен, но... Возникли напряги с кодировками, а именно: есть там 5 системных переменных character-set-server, -client, -connection, -results и -database. Стартую службу и они устанавливаются в следующие значения: cp1251 - для server и database, latin1 - для client, connection и results. Что, есессно, меня не устраивает, ибо выборки идут криво. Можно, конечно, каждый раз при подключении к серверу насильно устанавливать кодировку ('SET NAMES cp1251;'), но хотелось бы что-бы это происходило автоматом. Отсюда вопрос: как?
Вот мой my.ini (или my мой.ini

) после кучи экспериментов, так и не приведших к нужному результату:
Код:
[client]
default-character-set=cp1251
character-set-connection=cp1251
character-set-client=cp1251
character-set-results=cp1251
port=3306
[mysql]
default-character-set=cp1251
[mysqld]
bind-address=1.1.1.1
port=3306
basedir="_MYSQL_DIR_/"
datadir="_MYSQL_DIR_/Data/"
character-sets-dir="_MYSQL_DIR_/share/charsets/"
character-set-server=cp1251
default-character-set=cp1251
language="_MYSQL_DIR_/share/english/"
default-storage-engine=MYISAM
max_connections=100
query_cache_size=0
table_cache=256
tmp_table_size=5M
thread_cache=8
myisam_max_sort_file_size=100G
myisam_max_extra_sort_file_size=100G
myisam_sort_buffer_size=8M
key_buffer_size=4M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=212K
skip-innodb
З.Ы. Ой, сорри, чуть не забыл: версия - 5.0.2-alpha
З.З.Ы. Модерам: кстати поиск по слову "default-character-set" дал кучу тем (кроме этой) с практически идентичными названиями:
Неправильная сортировка русских слов (MySQL)
MYSQL неправильно сортирует алфавитные данные
тсранные проблемы со сменой кодировки в mysql 3.23.5x
Character set, MySQL
Может, стоит объединить?
З.З.З.Ы. Советы сменить default-character-set на предлагать - как видите по конф-файлу уже стоит...
З.З.З.З.Ы. Кстати, обратил только внимание на еще один глюк: по дефолту при коннекте двух разных клиентов устанавливаются разные значения переменных -server и -client:
- latin1 и cp1251 соответственно для mysql.exe;
- сp1251 и latin1 соответственно для sqlyoug4.
Т.е. к одному и тому же серверу два различных клиента подключаются и выдают различные значения системных переменных.