it-roy-ru.com

Экспорт данных из одной схемы в другую в MySQL Workbench

Есть ли способ экспортировать таблицы и данные из одной схемы в другую? Опция управления импортом/экспортом просит меня выбрать сервер для подключения, который отображается пустым. В настоящее время я подключен к серверу, который арендовал моя школа, специально для этого класса, поэтому у меня нет прав администратора. 

9
Hokerie

Вы можете создать дамп через Data Export в MySQL Workbench и импортировать его сразу после экспорта в новую схему. MySQL Workbench позволяет переопределить целевую схему в дампе.

7
Mike Lischke

Если вы столкнулись с проблемами при импорте данных в новую схему, например, из-за отсутствия данных в ней, может потребоваться обходной путь. Я запустил экспорт схемы из рабочей среды MySQL в файл .sql, чтобы затем импортировать ее в другую схему, и проблема заключалась в том, что экспортированный файл .sql сохранил предыдущую схему. 

Так что, если вы найдете это в начале экспортированного файла .sql:

CREATE DATABASE  IF NOT EXISTS `old_schema` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `old_schema`;

Замените это на это:

CREATE DATABASE  IF NOT EXISTS `new_schema` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `new_schema`;

Это сделает свое дело. В некоторых ситуациях размер файла .sql может составлять несколько сотен МБ, поэтому вам придется немного подождать, пока он не откроется в вашем редакторе. Этот код должен быть в начале файла, поэтому его легко найти.

Я надеюсь, что это помогает!

3
evaldeslacasa

в 6.0 и выше, похоже, что дамп записывает отдельные таблицы в каталог, который вы называете дампом. Все имена схем и таблиц по умолчанию соответствуют вашей схеме, из которой вы экспортировали (как вы заметили). Чтобы упростить импорт в новую схему, просто запустите следующее в вашей директории дампа:

find . -type f -exec sed -i 's/your_export_schema/your_different_schema_name/g' {} \;

Однако будьте осторожны, если вы будете иметь в своем экспорте данные, в которых есть имя вашей старой схемы. 

1
eggmatters

Я заметил, что вопрос был о Workbench, но учтите, что phpMyAdmin имеет эту возможность напрямую, в операциях с базой данных.

0
amichai