Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Проблема с кодировкой в MySQL 5.1.52 (mrdamage) 11/11/2010 - 10:38:15
      Re: Проблема с кодировкой в MySQL 5.1.52 (Елена) 14/11/2010 - 00:30:43

> Original message text:
> From: mrdamage - 11/11/2010 - 10:38:15
> Subject:Проблема с кодировкой в MySQL 5.1.52
> -----------------
> Друзья, помогите, пожалуйста, советом!
>
> У меня есть две машины - CentOS 5.5 с MySQL 5.1.52 и openSUSE с MySQL 5.1.49.
>
> На обоих машинах выполняется один и тот же скрипт, который пишет в базу данных некоторый русский текст:
>
> mysql_query('INSERT INTO mytest (c) VALUES ("тест");');
> (для базы, таблицы и поля выставлено при создании utf8)
>
> В my.cnf обоих серверов баз данных прописаны следующие директивы для задания кодировки:
> ===
> [client]
> default-character-set = utf8
>
> [mysqld]
> default-character-set = utf8
> default-collation = utf8_general_ci
> ===
>
> Соответственно, show variables показывает:
>
> | character_set_client | utf8 |
> | character_set_connection | utf8 |
> | character_set_database | utf8 |
> | character_set_filesystem | binary |
> | character_set_results | utf8 |
> | character_set_server | utf8 |
> | character_set_system | utf8 |
> | collation_connection | utf8_general_ci |
> | collation_database | utf8_general_ci |
> | collation_server | utf8_general_ci |
>
> Но при этом в версии MySQL 5.1.52 выполнение скрипта приводит к нечитаемой кодировке:
>
> +--------------------+
> | c |
> +--------------------+
> | тест |
> +--------------------+
>
> При этом в версии 5.1.49 всё в порядке - будет выведено слово 'тест'.
>
> Если в скрипт добавить запрос "SET NAMES utf8", то добавление будет происходить одинаково корректно в обоих версиях. Но получается, что придётся обновлять все скрипты?
>
> Какие есть альтернативные варианты?
>
> Ещё в процессе поиска проблемы в логах MySQL 5.1.49 нашёл интересные предупреждения:
> 101111 1:00:23 [Warning] '--default-character-set' is deprecated and will be removed in a future release. Please use '--character-set-server' instead.
> 101111 1:00:23 [Warning] '--default-collation' is deprecated and will be removed in a future release. Please use '--collation-server' instead.
>
> Однако изменение в my.cnf старых директив на:
> character-set-server = utf8
> collation-server = utf8_general_ci
> не решило проблему. Show variables при этом не поменялся в части кодировок - т.е. новые директивы работает.
>
> Складывается впечатление, что разработчики MySQL, избавляясь от default-character-set, как-то не очень правильно удалили его как из секции сервера, так и из секции клиента. Но второе почему-то до сих пор вляет на вывод show variables, а реально не работает.
>
> Кто-нибудь сталкивался с этой проблемой?
>
>


From: Елена - 14/11/2010 - 00:30:43
Subject:Проблема с кодировкой в MySQL 5.1.52
-----------------
У меня была проблема с кодировкой (мне нужна была виндовая кодировка), которая тоже решалась через "SET NAMES". Я перерыла кучу всего и в результате у в my.cnf появилbсь такие записи в секциях server и mysqld

[server]
init_connect=SET NAMES cp1251
skip-character-set-client-handshake

Хотя MYSQL у меня 5.1.41, но может и поможет... =)



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
37686



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |