Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как изменить collate СЕРВЕРА(не базы, не таблицы, а сервера) на utf8_unicode_ci?
 
 автор: J-Pro   (27.10.2006 в 01:35)   письмо автору
 
 

Ребят, провёл день в нете и в мускуле в поисках решения моей проблемы.

Началось всё с ошибки при вызове храномой процедуры: "Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT)".
При этом(!ВАЖНО!), данные во всех таблицах, что через EMS MySQL Manager, что через PhpMyAdmin были видны отлично. Поискал, почитал, разобрался, что значения трёх важных переменных отличны:
collation_connection: utf8_unicode_ci
collation_database: utf8_unicode_ci
collation_server: utf8_general_ci


К тому же во всех таблицах и их столбцах collate стоял так же utf8_unicode_ci.

Не найдя как в настройках сервера изменить collation_server на utf8_unicode_ci, но зная как поменять всё остальное, я решил попробовать. потому что прочитал, что в принципе, это одно и то же, но general быстрее, а unicode - по стандарту. Изменил. Получил все таблицы и их столбцы в utf8_general_ci, а так же три переменные в той же utf8_general_ci:
collation_connection: utf8_general_ci
collation_database: utf8_general_ci
collation_server: utf8_general_ci


Вызываю процедуру - работает без этой ошибки, !НО! теперь все результаты, что через EMS MySQL Manager, что через PhpMyAdmin, показываются иероглифами! Я не понимаю, в чём дело, но предполагаю, что это из-за тех самых стандартов. Так же предполагаю, что если изменить ВСЁ вышеописанное в utf8_unicode_ci, всё будет замечательно работать.

Отсюда вопрос: КАК изменить collation_server на utf8_unicode_ci? Я понимаю, что с помощью SET этого можно добиться, но а как поменять это в установках сервака? Есть, в принципе, конфигурационный визард, но там можно выбрать лишь uft8, не написано какую, а получается general.

ОЧЕНЬ надеюсь на вашу помощь, ребят..

Пасибо заранее.

P.S.: Все переменные вывода стоят в utf8, к примеру:
character_set_client     utf8
character_set_connection utf8
character_set_database     utf8
character_set_results     utf8
character_set_server     utf8
character_set_system     utf8



P.P.S.: Я реально искал по форумам, а так же по всему нету, гуглом... Не думайте, что я просто так сюда написал, не попытавшись решить проблему самостоятельно...

   
 
 автор: cheops   (27.10.2006 в 14:24)   письмо автору
 
   для: J-Pro   (27.10.2006 в 01:35)
 

Погодите, а данные в таблицах у вас в какой кодировке, просто поменять кодировки соединения и таблиц не получится, нужно после того, как они были изменены заполнить таблицы по новой. У вас как выглядит хранимая процедура - может проще в ней преобразовать кодировку при помощи конструкции
_utf8'строка' COLLATE utf8_general_ci

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования