Feb 07

Проблема состояла в том что dump сохранялся вопросиками, сортировка выполнялась сервером не по алфавиту, и это только основные причины.

Промучился с настройкой достаточно большое количество времени, перечитал кучу страничек.

Рекомендую ознакомиться:

Работа MySQL со строками
http://sqlinfo.ru/articles/info/2.html

Обновление сервера 3.23 и 4.0
http://sqlinfo.ru/articles/info/5.html

Проблемы с русским языком и как их решать
http://www.sql.ru/faq/faq_topic.aspx?fid=152

http://phpfaq.ru/charset

А вообще везде пишут что достаточно поставить

default-character-set=cp1251

Кое кто указывает еще

character-set-server=cp1251
collation-server=cp1251_general_ci

Но на данных настройках mysql не выдавал правильно русские буковки на сайте и в утилите SQLyog.

А в SQL Manager for MySQL выдавал правильно :-)

Решение:

В раздел [mysqld] необходимо добавить следующее:

default-character-set=cp1251
character-set-server=cp1251
collation-server=cp1251_general_ci
init-connect="SET NAMES cp1251"
skip-character-set-client-handshake

последняя строка не сработала на MySQL версии 4.1.x, но в версии 5.х сервер нормально запустился. В четверке все работает и без последней строки, т.е. решение моих проблем в init-connect="SET NAMES cp1251".

Еще заместо этой строки в my.cnf помогает в PHP скрипте:

mysql_query('SET NAMES "cp1251"', $mysql_con);

Без этого все было вопросиками.

Теги: , , ,