g0l (g0l) wrote,
g0l
g0l

Траблы mysql с кодировкой cp1251

Стояла кодировка по-умолчанию, latin1. Всё работало нормуль, но недавно стал замечать что поиск через жопу работает в некоторых случаях, и сортировка по алфавиту тож оригинально сортирует. Начал ковыряться и только тогда заметил что, правда, latin1 стоит.

На dedic.ru нашёл решение проблемы:
Правим файло /etc/my.cnf

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

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

Две последние строки принудительно устанавливают кодировку cp1251 для всех запросов.

В раздел [mysqldump] достаточно добавить только

default-character-set=cp1251

Этого достаточно, чтобы MySQL работал с windows-1251 кодировкой по умолчанию.

Если же при импорте базы данных вместо русских букв выдаются иероглифы или знаки вопроса, это значит, что дамп был сделан в кодировке, отличной от cp1251. Переделайте дамп в cp1251 или перекодируйте его в нужную кодировку с помощью утилит iconv или recode.

Вот так вот. Всё легко и всё отлично перенеслось.

Заметка закросспостена с моего блога g0l.ru
Tags: freebsd, mysql
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 0 comments