|
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
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, а реально не работает.
Кто-нибудь сталкивался с этой проблемой?
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
37686
|
|