2.10. Как переконвертировать БД MySQL в другую кодировку?

  1. Выгрузите дамп БД, командой:
      mysqldump -u пользователь -p пароль база_данных >файл_дампа.sql
    
  2. Пользователи Linux и FreeBSD могут воспользоваться для перекодирования командой:
      cat файл_дампа.sql | iconv -f исходная_кодировка -t нужная_кодировка | sed -e 's/исходная_кодировка_БД/нужная_кодировка_БД/g' >новый_файл_дампа.sql
    
    Например, если БД в кодировке Windows-1251, а мы хотим получить UTF-8, команда будет выглядеть так:
      cat файл_дампа.sql | iconv -f cp1251 -t utf8 | sed -e 's/ CHARSET=CP1251/ CHARSET=UTF-8/g' >новый_файл_дампа.sql
    
    Пользователи Windows должны сами найти подходящий перекодировщик :( Идея такова - меняем кодировку в файле и затем в этом же файле меняем все подстроки CP1251 в описаниях таблиц на UTF-8.
  3. Загружаем дамп БД обратно в базу:
      mysql -u пользователь -p пароль база_данных < новый_файл_дампа.sql