web_user
@web_user
Django, HTML + CSS, JS, Photoshop, Illustartor

Как сделать экпорт в кодировке utf8 из большой БД MySQL с помощью mysqldump?

Дамп свыше 1GB, многие графические системы падают =)

Вот от экспортируемой БД:
mysql> SHOW VARIABLES LIKE "char%";

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+


Пробовал командой:
mysqldump -uuser -ppass mydb > dumpdb

Получил дамп в SQL формате, но все русские символы отображаются знаками вопросов "?", декодер не предлагать, он не поможет.

root@server ~ # mysqldump --version
mysqldump  Ver 10.13 Distrib 5.1.70, for pc-linux-gnu (x86_64)
  • Вопрос задан
  • 2777 просмотров
Решения вопроса 1
web_user
@web_user Автор вопроса
Django, HTML + CSS, JS, Photoshop, Illustartor
Вот решение:
mysqldump -uUSERNAME -p DATABASENAME --single-transaction --default-character-set=utf8 -e -r FILENAME.dump


Получил все в UTF-8, методом проб и ошибок. Уфф, ура! =)

--single-transaction – надо добавлять для таблиц InnoDB (с хабра и про -e тоже там написано).

-r – это правильнее, чем вывод в файл через ">" прочел на англ. ресурсе, но уже не помню где, что-то связано с кодировками.

Все остальное используем как есть)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
Возьми любую систему управления MySQl - от PhpMyAdmin до dbForge Studio for MySQL - и делай дамп ей.

А если у тебя в БД триггеры есть, то dbForge Studio создаст дамп, который будет с этой стороны совершенно безопасен (никаких повреждений данных от сработавших во время восстановления триггеров).
Ответ написан
@shoomyst
dumb
Из графических советую попробовать Sypex Dumper.
Я понятия не имею, как он работает, но всегда поражаюсь, как веб-приложение может обрабатывать такие объемы данных, где тот же SQLYog виснет.
Ответ написан
Ваш ответ на вопрос

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

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