Задать вопрос
berezuev
@berezuev
#define TRUE FALSE

Mysql: как пофиксить битую кодировку?

В общем, ситуация такая. По ошибке залил дамп с битой кодировкой.
Я знаю, из какой кодировки и в какую мне надо конвертнуть, чтобы пофиксить. Но как это сделать?
  • Вопрос задан
  • 160 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Решения вопроса 1
berezuev
@berezuev Автор вопроса
#define TRUE FALSE
А решение было такое:

UPDATE table SET
field = CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8);

Но, на действительно большие таблицы оно не подойдет, ибо на ссд по читается 10-12к записей в секунду, а записывается всего 300-500 штук... т.е. 1кк строк будет обновляться 41 минуту... Если более 100кк — не дождешься никогда...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
martin74ua
@martin74ua Куратор тега MySQL
Linux administrator
Перезалить дамп с правильной кодировкой не подходит?
Ответ написан
Extor
@Extor
sysadmin
Возможно, подойдет следующий вариант:

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы