среда, ноября 08, 2006

Переход к другой кодировке на MySQL 5.X

Передо мной встала задача перейдти к другой кодировке в рабочей базе данных MySQL.
Первоначально данные хранились в MySQL 4.Х, но после перехода к MySQL 5 версии данные были внесены в кодировке UTF-8. Причем в MySQL 5 появилась параметр "сравнение", по умолчанию значение которого равно "latin1".

$ mysqldump database_name -uroot -p > base.sql
Установка konwert:
$ apt-get install konwert
Смотрим список доступных фильтров:
$ ls /usr/share/konwert/filters/
Конвертируем:
$ konwert UTF8-cp1251 base.sql -o base-1.sql
Конвертацию под windows можно сделать с помощью программы Штирлиц.
Заменяем текущую кодировку на нужную:
$ cat base-1.sql | awk '{gsub(/latin1/,"cp1251");print}' > base-1251.sql
где latin1 - текущая кодировка БД, cp1251 - новая кодировка.
Тоже самое можно сделать в любом редакторе простой заменой.
И результат заносим в нашу базу:
$ mysql -uroot -p -d database_name

1 комментарий:

Анонимный комментирует...
Этот комментарий был удален администратором блога.