Переконвертация базы

Тема в разделе "Базы данных", создана пользователем Axom, 14 окт 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Axom

    Axom

    Регистр.:
    25 апр 2007
    Сообщения:
    320
    Симпатии:
    94
    Хочу перегнать базу (форум vbulletin) весом 1гиг из (большей в которой она сейчас) latin1_swedish_ci в utf8.
    Но, при импортирование базы с принудительной utf8 с помощью sypex dumper, большая часть русских слов, вместо перекодировки пропадает совсем...
    Как можно решить эту проблему?
    Пробовал перегонять в cp1251, так на таблице post, весом 500мб, dumper жестоко начинает тормозит и еле-еле выполняет всё, а потом застревает просто....
    Что можно сделать? :(
     
  2. zerdek

    zerdek

    Регистр.:
    29 ноя 2007
    Сообщения:
    346
    Симпатии:
    50
    можно использовать консольный iconv. он есть и под юниксы и под винду.
    1. сделать несжатый sql дамп при помощи sypex dumper
    2. ручками заменой поменять в нем codepage на всех табличках
    3. конверт кажись так(ток свой дамп подсунь:( iconv -c -f latin1 -t utf-8
    4. поднимаем дамп назад при помощи sypex dumper
     
    Axom нравится это.
  3. zzxc

    zzxc Создатель

    Регистр.:
    27 дек 2007
    Сообщения:
    10
    Симпатии:
    3
    Насколько я понимаю, база в MySQL.

    Только что нашел в мануале такую команду:
    ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;

    Мануал говорит, что он поменяет кодировку таблицы и переконвертит все текстовые поля в ней.

    Вероятно, это не поможет, если текст хранится в BLOB'ах, т.к. они так и останутся в swedish. Думаю, в этом случае нужно преобразовать BLOB'ы в TEXT, переконвертить кодировку и поменять тип обратно.
     
Статус темы:
Закрыта.