MySQL Workbench обеспечивает способность мигрировать ODBC-базы данных к MySQL.
Это не исчерпывающий список. Следующие разделы обсуждают эти и дополнительные возможности миграции.
Установка может быть самым сложным аспектом использования мастера MySQL Workbench Migration. Есть раздел, который описывает подготовку требований ODBC для Linux, macOS и Microsoft Windows и другой раздел, который поясняет условия установки для каждого RDBMS.
MySQL Workbench Migration Wizard использует ODBC, чтобы соединиться с исходной базой данных, за исключением MySQL. Вам будет нужен установленный драйвер ODBC, который соответствует базе данных, от которой вы хотите мигрировать. Например, PostgreSQL может мигрировать с драйвером psqlodbc ODBC driver, Microsoft SQL Server может мигрировать со своим драйвером Microsoft SQL Server driver в Windows или FreeTDS в Linux и macOS.
Следующие данные показывают общие компоненты, вовлеченные в связь ODBC: драйвер ODBC для сервера MySQL и другой системы управления реляционными базами данных, ODBC Driver Manager и MySQL Workbench.
Рис. 10.1. Схема установки миграции MySQL Workbench
Определяя источник RDBMS, можно использовать источник данных, формируемый внешне, или предоставить отдельные параметры связи MySQL Workbench. Если вам уже формировали источник данных ODBC в вашей системе, то можно использовать это в MySQL Workbench.
Процесс миграции не поддерживает источник или цель для связей через SSH.
Обход должен настроить зашифрованный тоннель, а затем рассматривать цель MySQL как стандартную TCP (незашифрованную) связь.
Эта секция может быть пропущена, используя MySQL Workbench от Oracle.
Библиотека ODBC Driver Manager должна присутствовать. Windows и macOS обеспечивают ее.
iODBC: MySQL Workbench от Oracle
уже включает iODBC и никакое дополнительное действие не требуется.
Если вы собираете пакет сами, необходимо установить iODBC или unixODBC.
iODBC рекомендуется. Можно пользоваться библиотекой iODBC, обеспеченной
дистрибутивом, устанавливая пакет libiodbc2 на Debian или libiodbc в RPM.
pyodbc: модуль Python, используемый
MySQL Workbench, чтобы взаимодействовать с ODBC, может использоваться, чтобы
мигрировать базы данных ODBC, такие как PostgreSQL и DB2. В Windows и macOS
это включено в Workbench. В Linux исполняемые модули от Oracle
также включают pyodbc.
При использовании самособранных модулей удостоверьтесь, что у вас есть последняя версия, и что она собрана с библиотекой менеджера ODBC, которую вы выбрали. С версии 3.0.6 pyodbc собирается с unixODBC по умолчанию. Если вы собираете с iODBC, необходимо выполнить следующие шаги:
Для компилирования удостоверьтесь, что вы установили
заголовки iODBC. Для Linux имя зависит от диспетчера пакетов вашей системы,
но общие названия libiodbc-devel (RPM) или
libiodbc2-dev (Debian). Для macOS заголовки идут
с системой, и никакое дополнительное действие не требуется для этого шага.
settings['libraries'].append('odbc') на
settings['libraries'].append('iodbc').CFLAGS=`iodbc-config --cflags`
LDFLAGS=`iodbc-config --libs` python setup.py install
Для каждого RDBMS вам нужен его соответствующий драйвер ODBC, который должен также быть установлен на той же самой машине, что и MySQL Workbench. Его обычно предоставляет производитель RDBMS, но в некоторых случаях его могут также предоставить сторонние продавцы или проекты с открытым исходным кодом.
Операционные системы обычно обеспечивают графический интерфейс, чтобы помочь установить драйверы ODBC и источники данных. Используйте это, чтобы установить драйвер (заставьте менеджера ODBC видеть недавно установленный драйвер ODBC). Можно также использовать его, чтобы создать источник данных для определенного случая базы данных, используя ранее установленный драйвер. Как правило, необходимо обеспечить название источника данных (DSN), в дополнение к IP сервера базы данных, порту, имени пользователя и иногда базу данных, к которой у пользователя есть доступ.
Если MySQL Workbench будет в состоянии определить местонахождение менеджера ODBC GUI для вашей системы, то кнопка на странице обзора мастера миграции откроет его.
Linux: Есть несколько утилит GUI,
некоторые из которых включены в unixODBC. Обратитесь к документации для
вашего дистрибутива. iODBC обеспечивает
iodbcadm-gtk.macOS: Можно использовать ODBC
Administrator, который является отдельной загрузкой с Apple, или ODBC
Management от различного продавца. Если инструмент устанавливается в папку
/Applications/Utilities, можно запустить его,
используя кнопку .Microsoft Windows: Можно использовать
Data Sources (ODBC) в Administrative Tools. Если существует, кнопка
его запустит.
Архитектура драйвера ODBC.
Так как драйвер ODBC должен быть установлен на клиентской стороне, вам будет нужен драйвер ODBC, который поддерживает вашу операционную систему клиента и архитектуру. Например, если вы управляете MySQL Workbench в Linux x64, тогда вам нужен драйвер Linux x64 ODBC. В macOS MySQL Workbench строится как 32-битное приложение, таким образом, вам нужны 32-битные драйверы.
Migration Wizard выполняет следующие шаги, мигрируя базу данных к MySQL:
Соединяет с источником RDBMS и получает список доступных баз данных/схем.
Создаются целевые объекты схемы.
Столбцы для каждой таблицы копируются.
Типы данных отображаются к типам данных MySQL.
Индексы преобразовываются.
Foreign Keys для всех таблиц (всех схем) преобразовываются.
Обеспечивается возможность рассмотреть изменения для редактирования и исправления ошибок в объектах.
MySQL Workbench оказывает поддержку для перемещения от некоторых определенных продуктов RDBMS. Мастер миграции обеспечит лучшие результаты, мигрируя от таких продуктов. Однако в некоторых случаях другие неподдержанные продукты базы данных могут также мигрироваться при помощи универсальной поддержки БД, пока у вас есть драйвер ODBC. В этом случае миграция будет менее автоматической, но тем не менее должна работать.
Этот пример мигрирует базу данных Microsoft SQL Server к MySQL и включает изображение для каждого шага.
В MySQL Workbench выберите и , чтобы открыть мастера миграции и показать обзор миграции.
Рис. 10.2. Миграция в MySQL Workbench: обзор

Это описывает предпосылки и требования, которые должны быть поняты прежде,
чем продолжить. Опция
загрузит odbcad32.exe и используется, чтобы
подтвердить, что драйвер ODBC для SQL Server установлен и сделать изменения
конфигурации в случае необходимости.
Нажмите .
Выберите источник, который мигрирует к MySQL. Выберите Database System, которая мигрирует, другие параметры связи изменятся соответственно.
Рис. 10.3. Миграция MySQL Workbench: исходный выбор (параметры)
Цель это база данных MySQL, которая будет содержать недавно мигрировавшую базу данных. Текущие подключения Workbench MySQL будут доступны здесь или можно выбрать , чтобы создать новую связь.
Рис. 10.4. Миграция MySQL Workbench: Целевой выбор

Список Схем получается от обоих RDBMS, входной и выходной. Это автоматизированный информационный шаг, который сообщает, что связанные со связью ошибки и/или общую информацию. Нажмите .
Рис. 10.5. MySQL Workbench: список схем
Выберите схемы, которые вы хотите мигрировать.
Опции "Schema Name Mapping Method" для миграции с Microsoft SQL Server:
Рис. 10.6. MySQL Workbench: Выбор схем
Исходные метаданные получены из источника и затем перепроектированы. Это автоматизированный информационный шаг, который сообщает о связанных ошибках и общей информации. Просмотрите журнал и затем нажмите .
Рис. 10.7. MySQL Workbench: Перепроектируйте источник
Обнаруженные на стадии Reverse Engineer Source объекты показаны и сделаны доступными. Результаты включают таблицу, представление и сохраненные подпрограммы, только объекты таблицы выбраны по умолчанию.
Рис. 10.8. MySQL Workbench: Исходные объекты

Процесс миграции теперь преобразовывает выбранные объекты в совместимые объекты MySQL.
Рис. 10.9. MySQL Workbench: миграция

Есть три секции, чтобы отредактировать, которые выбраны при помощи блока View справа вверху. Кнопка доступна с каждым представлением, она покажет произведенный код MySQL, который соответствует выбранному объекту.
Рис. 10.10. MySQL Workbench: Редактирование (проблемы миграции)
: представление объекта, которое позволяет вам рассматривать и редактировать определения объектов. Дважды щелкните по строке, чтобы изменить имя целевых объектов.
Рис. 10.11. MySQL Workbench: Редактирование (все объекты)
: показывает все отображения столбца таблицы и позволяет вам индивидуально просматривать и исправлять отображение для всех типов столбца, значений по умолчанию и других признаков.
Рис. 10.12. MySQL Workbench: Редактирование (отображения столбцов)
Схема может быть создана добавлением к целевой RDBMS, создав файл скрипта SQL или обоими способами.
Рис. 10.13. MySQL Workbench: Целевые варианты создания
Теперь схема создается. Полный журнал также доступен здесь.
Рис. 10.14. MySQL Workbench: Создание схемы

Произведенные объекты в этом примере перечисляются наряду с сообщениями об ошибках, если они есть.
Код миграции может также быть рассмотрен и отредактирован здесь. Чтобы внести изменения, выберите объект, отредактируйте код запроса и затем нажмите . Повторите этот процесс для каждого объекта, который будет отредактирован. Наконец, нажмите , чтобы сохранить результаты. требуется, чтобы сохранить любые изменения здесь. Это тогда выполнит предыдущий шаг миграции (Create Schema) с измененным кодом, и затем продолжит процесс миграции. Это также означает, что ранее сохраненная схема будет сброшена.
Рис. 10.15. MySQL Workbench: создайте целевые результаты
Следующий шаг передает данные из источника RDBMS к целевой базе данных MySQL. Экран установки включает следующие варианты:
Data Copy:
Этот более быстрый метод избегает потребности передачи всех данных через MySQL Workbench или иметь постоянное сетевое соединение между серверами MySQL. Этот выбор был добавлен в MySQL Workbench 6.3.0.
Опции:
2.
Это количество задач (соединений с базой данных),
используемых, копируя данные.Рис. 10.16. MySQL Workbench: установка передачи данных
В зависимости от выбранного выбора это передаст данные целевой RDMS (по умолчанию), произведет простой скрипт для передачи данных онлайн или произведет скрипт, чтобы выполнить на исходном хосте, который тогда производит zip-файл, содержащий скрипт передачи и данные, который будет выполнен на целевом хосте. Произвольно, просмотрите журнал в поисках ошибок.
Рис. 10.17. MySQL Workbench: оптовая передача данных
И наконец, отчет о миграции доступен и суммирует весь процесс миграции.
Рис. 10.18. MySQL Workbench: Отчет о миграции

Нажим закроет окно миграции. Если вы выбрали копию онлайн, база данных может теперь быть просмотрена в MySQL Workbench SQL editor.
Рис. 10.19. MySQL Workbench: просмотр мигрировавшей базы данных
Если вкладка MySQL Workbench SQL Editor уже открыта, то список схем в Object Browser должен быть освежен, чтобы просмотреть недавно импортированную схему.
Когда поддержанный продукт RDBMS будет использован для миграции, мастер MySQL Workbench Migration Wizard автоматически преобразует столько информации, сколько может, но все еще надо вручную редактировать автоматически перенесенную схему для трудных случаев или когда отображение по умолчанию не такое.
Вообще говоря, только информация о таблице и ее данные автоматически преобразовываются в MySQL. Кодовые объекты, такие как представления, хранимые процедуры и триггеры, нет. Но поддержанные данные RDBMS будут получены и показаны в мастере. Можно тогда вручную преобразовать их или сохранить для преобразования в более позднее время.
Следующие продукты RDBMS и версии в настоящее время проверяются и поддерживаются мастером MySQL Workbench Migration Wizard, хотя другие продукты RDBMS могут быть также перенесены, см. раздел 10.2.3:
Большинство баз данных ODBC может мигрировать, используя универсальную поддержку БД. В этом случае кодовые объекты не будут восстановлены из исходной базы данных, переносятся только таблицы и данные.
Используя универсальную поддержку, типы данных столбцов отображены, используя следующие шаги:
Это ищет первый вход в для исходного имени типа. Если длина/диапазоны входа будет соответствовать столбцу источника, это выберет тот тип. Иначе это продолжает искать.
Следующая таблица показывает сравнение между каждым продуктом DBMS, поддержанным мастером Migration Wizard и MySQL.
Таблица 10.1. Концептуальные эквиваленты между поддержанными продуктами DBMS и MySQL
| Понятие | MS SQL Server | Sybase ASE | PostgreSQL | MySQL | Примечание |
|---|---|---|---|---|---|
| Идентификация | Да | Да | Да | Да | |
| Auto_Increment | Да | Да | Да | Да | PostgreSQL использует последовательности для Auto_Increment. |
| Резервная копия | Да | Да | Да | Да | См. MySQL Enterprise Backup. |
| Catalog | Да | Да | Да | N/A | Можно отобразить каталог в схему и пропустить ownerobject, использовать владельца в качестве названия схемы или слить владельца и имя объекта вместе. |
| Constraints | Да | Да | Да | Да | |
| Data Dictionary | N/A | ||||
| Database | Да | Да | Да | Да | |
| Database Instance | |||||
| Дамп | Да | Да | Да | Да | mysqldump |
| События | Да | Да | Да | Да | |
| Foreign Keys | Да | Да | Да | Да | |
| Full Text Search | Да | Да | Да | Да | В InnoDB, начиная с MySQL Server 5.6 и во всех версиях MyISAM. |
| Индекс | Да | Да | Да | Да | |
| Information Schema | Да | No | Да | Да | |
| Чувствительность к регистру имен объектов | Зависит от сопоставления | Зависит от сопоставления | Смешано | Смешано | MySQL: чувствительность имен базы данных, таблиц и триггеров зависит от операционной системы, другие имена объектов нечувствительны к регистру. PostgreSQL: соответственно стандарту SQL-99, непроцитированные имена объектов рассматриваются как нечувствительные к регистру, в то время как цитированные имена объектов чувствительные к регистру. В отличие от стандарта, непроцитированные имена объектов преобразовываются в строчные буквы вместо верхнего регистра. |
| Соглашения об именах объекта | Да | Да | Да | Да | |
| Packages | N/A | N/A | N/A | N/A | |
| Разделение | Да | Да | Да | Да | |
| Performance Schema | N/A | N/A | Да | Да | |
| Права доступа и управления | Да | Да | Да | Да | |
| Primary Key | Да | Да | Да | Да | |
| Ссылочная целостность | Да | Да | Да | Да | Sybase ASE: ссылочная целостность только через триггеры. |
| Репликация | Да | Да | Да | Да | |
| Роли | Да | Да | Да | N/A | Роли не доступны в MySQL на уровне базы данных. |
| Schema | Да | Да* | Да | Да | Эквивалентно базе данных в MySQL. Sybase ASE: схемы соответствуют именам пользователей. |
| Sequences | Да* | Да* | Да | Да* | Автономные объекты последовательности не поддерживаются в MySQL. Схожая функциональность может быть получена со столбцами IDENTITY в MSSQL и AUTO_INCREMENT в MySQL. |
| Режимы SQL | Да | Да | Да | SET_ANSI_* в MSSQL | |
| Механизмы хранения | N/A | N/A | Да* | Да | PostgreSQL поддерживает и использует только один механизм хранения (Postgresql). Другие компании добавили дополнительные механизмы хранения к PostgreSQL. |
| Stored Procedures | Да | Да | Да | Да | |
| Синонимы | N/A | N/A | N/A | N/A | |
| Таблица | Да | Да | Да | Да | |
| Табличное простанство | Да | Да* | Да | N/A | MSSQL группирует таблицы в схемах (что-то вроде CREATE TABLESPACE). Sybase ASE: таблицы сгруппированы в схемах, которые больше похожи на имена пользователей. |
| Временные таблицы | Да | Да | Да | Да | |
| Транзакции | Да | Да | Да | Да | |
| Триггеры | Да | Да | Да | Да | |
| UDF | Да | Да | Да | Да | |
| Unicode | Да | Да | Да | Да | |
| Unique Key | Да | Да | Да | Да | |
| Пользователь | Да | Да | Да | Да | |
| Представления | Да | Да | Да | Да |
Обработка структурных различий Microsoft SQL Server и MySQL.
База данных Microsoft SQL Server составлена из одного каталога и одной или более схем. MySQL только поддерживает одну схему для каждой базы данных (или скорее база данных MySQL это схема), таким образом, это различие в дизайне должно быть запланировано. Mастер Migration Wizard должен знать, как обращаться с миграцией схем для исходной базы данных (Microsoft SQL Server). Это может сохранить все схемы как есть (мастер миграции создаст одну базу данных на схему) или слить их в единственную базу данных MySQL. Дополнительные варианты включают: удалить названия схемы (мастер миграции будет обращаться с возможными столкновениями имен, которые могут появиться по ходу дела) или добавить название схемы к именам объектов базы данных как префикс.
Эта опция была добавлена в MySQL Workbench 6.2.0.
Microsoft Windows требуется, потому что драйверы Microsoft Access ODBC доступны только в Windows. Что касается места назначения, сервер MySQL может быть на той же самой машине или в другом месте в вашей сети.
Microsoft Access Microsoft Access хранит информацию отношений/внешнего ключа во внутренней таблице под названием MSysRelationships. Таблица защищена от доступа для чтения даже пользователем Admin, поэтому при попытке мигрировать, не открывая доступ к ней, вы получите ошибку:
[42000] [Microsoft][ODBC Microsoft Access Driver] Record(s)
cannot be read; no read permission on 'msysobjects'.
(-1907) (SQLExecDirectW)
Шаги, чтобы предоставить доступ для чтения роли Admin (Microsoft Access 2007):
Рис. 10.20. Местонахождение инструмента Visual Basic Macro Database
Чтобы подтвердить, что вы вошли как пользователь "Admin", определите местонахождение панели Immediate, напечатайте "? CurrentUser" и нажмите . Это должно вывести "Admin" под "? CurrentUser" в панели.
CurrentProject.Connection.Execute "GRANT SELECT ON MSysRelationships TO Admin"
Рис. 10.21. GRANT SELECT ON MSysRelationships TO Admin
Закройте Microsoft Access.
От главного экрана MySQL Workbench можно запустить мастер Migration
Wizard, щелкнув по кнопке (
) в боковой панели Workbench или выбрав из главного меню
,
.
Рис. 10.22. Страница обзора миграции

Чтобы проверить, что вы установили драйвер ODBC, нажмите со страницы обзора миграции MySQL Workbench, чтобы открыть системный инструмент ODBC. Затем выберите вкладку Drivers.
Рис. 10.23. Проверка драйверов ODBC для Access
У MySQL Workbench есть 64-битный исполняемый файл. Драйверы ODBC, которые вы используете, должны иметь ту же самую архитектуру. Если во время миграции вы получаете ошибку ODBC "architecture mismatch between the Driver and Application", вы установили неверную версию MySQL Workbench.
На вкладке User DSN нажмите , чтобы создать DSN для вашего файла базы данных.
Рис. 10.24. Добавление нового DSN

Нажмите на странице Overview, чтобы продвинуться на страницу Source Selection. Здесь необходимо предоставить информацию о базе данных Access, с которой вы мигрируете, драйвере ODBC и параметры для связи.
Откройте комбинированное окно Database System для списка поддерживаемых RDBMS и выберите Microsoft Access из списка. Есть другое комбинированное окно ниже Stored Connection. Это перечисляет сохраненные настройки подключения для этой RDBMS. Можно сохранить связи, отметив флажок внизу страницы, наряду с названием связи.
Следующее комбинированное окно выбирает Connection Method. На этот раз мы собираемся выбрать ODBC Data Source из списка. Это позволяет вам выбирать созданные ранее DSN, которые вы формировали в своей системе.
Список DSN имеет все DSN, которые вы определили в своей системе. Выберите тот, который вы создали для базы данных Access.
В поле Default Character Set можно выбрать набор символов базы данных. Если ваша версия Access использует символы western/latin, можно оставить по умолчанию cp1252. Однако, если вы используете локализованную версию Access, необходимо ввести правильный набор символов, используемый выпуском Microsoft Office, иначе данные будут скопированы неправильно.
Рис. 10.25. Исходный выбор Access
Наконец, нажмите , чтобы проверить, может ли связь ODBC быть установлена. Если вы вошли в правильные параметры, то увидите сообщение об успешной попытке подключения.
Затем, настройте целевые параметры базы данных (MySQL), определив параметры, которые соединяются с вашим экземпляром MySQL Server. По окончании нажмите , чтобы проверить определение связи.
Рис. 10.26. Целевой выбор базы данных
Необходимо просмотреть инженерный анализ выбранных объектов базы данных. В этом пункте мастер миграции получает релевантную информацию о включенных объектах базы данных (таких как имена таблиц, столбцы таблицы, первичные и внешние ключи, индексы, представления, триггеры и т.д.).
Рис. 10.27. Результат анализа источника
Надо проверить, что все подходит. Затем Source Objects показывает список объектов, которые были получены и доступны для миграции.
Рис. 10.28. Исходные объекты
В предыдущем примере мастер миграции обнаружил таблицу и объекты представления для исходной базы данных. Только объект таблицы выбран по умолчанию для миграции. Можно также выбрать объекты представления, но необходимо также предоставить их соответствующий MySQL эквивалентный код позже (никакая автоматическая миграция недоступна для них), таким образом, наш пример оставит представления непроверенными. То же самое касается хранимых процедур, функций и триггеров.
Нажмите , чтобы формировать точно, какие объекты вы хотите мигрировать.
Рис. 10.29. Выбор исходных объектов
Объекты справа будут мигрироваться. Фильтр может отфильтровать список (подстановочные знаки позволены, как продемонстрировано выше). При помощи кнопок стрелки можно отфильтровать объекты, которые вы не хотите мигрировать. Очистите текст фильтра, чтобы проверить полный список выбранных объектов. Наш пример мигрирует все объекты таблицы, таким образом, все они находятся в списке Objects to Migrate и флажок Migrate Table Objects отмечен.
В этом пункте мастер миграции преобразовывает выбранные объекты в их эквивалентные объекты целевого сервера MySQL, это также производит код MySQL, который должен был создать их. Вам, возможно, придется ждать, прежде чем шаг Manual Editing покажет начальную страницу.
Рис. 10.30. Редактирование вручную: начальная страница
Блок View изменяет способ, которым показывают мигрировавшие объекты базы данных. Нажмите , чтобы смотреть и отредактировать произведенный код MySQL, который соответствует выбранному объекту. Кроме того, можно дважды щелкнуть по элементу в дереве объектов, чтобы отредактировать имя объекта или дважды щелкнуть по строке базы данных, чтобы изменить ее название.
Рис. 10.31. Редактирование вручную: все объекты
Блок View также имеет опцию Column Mappings. Это показывает столбцы таблицы и позволяет вам просматривать и менять отображение типов столбца, значения по умолчанию и другие признаки.
Рис. 10.32. Отображения столбцов
Теперь откроется страница Target Creation Options.
Рис. 10.33. Целевые варианты создания
Используйте варианты целевого создания, чтобы выполнить произведенный код в целевой RDBMS или можно сбросить его в файл скрипта SQL. Код SQL будет выполнен на целевом сервере MySQL. Можно рассмотреть его работу на странице Create Schemas.
Рис. 10.34. Создает схемы
Когда создание схем и объектов, закончено можно перейти к странице Create Target Results. Это представляет список созданных объектов и включает любые произведенные ошибки, в то время как они были созданы.
Рис. 10.35. Созданы целевые результаты
Можно отредактировать код миграции, используя код справа и сохранить изменения при нажатии . Если правки были сделаны, все еще необходимо создать объекты с измененным кодом, чтобы выполнить изменения. Это сделано при нажатии . В этой обучающей программе мы ничего не изменяем, так что оставьте код как есть и переходите к странице Data Transfer Setup.
Следующий шаг передает данные из исходной базы данных Access в вашу недавно созданную целевую базу данных MySQL. Страница Data Transfer Setup позволяет вам формировать этот процесс.
Рис. 10.36. Data Transfer Setup
Есть два варианта. Первый позволяет вам выполнять живой перенос и/или сбросить данные в пакетный файл, который можно выполнить позже. Другой вариант позволяет вам изменять этот процесс.
Эта обучающая программа использует значения по умолчанию для вариантов на этой странице. Затем данные передаются. В этом пункте соответствующая страница прогресса подтверждает выполняемые задачи.
Рис. 10.37. Оптовая передача данных
Как только это заканчивается, перейдите на следующую страницу. Вам будет представлена страница отчета, суммирующая целый процесс. Теперь просмотрите и нажмите Finish, чтобы закрыть мастер.
Теперь, когда база данных успешно мигрировала, можно рассмотреть
результаты. Откройте SQL Editor, который связан с вашим сервером MySQL, затем
запросите базу данных. Например, выполните запрос
SELECT * FROM northwind.customers,
который наполнит сетку результата.
Рис. 10.38. Проверка ваших результатов

MySQL Workbench Migration Wizard проверен для следующих версий Microsoft SQL Server: 2000, 2005, 2008 и 2012.
Чтобы быть в состоянии мигрировать от Microsoft SQL Server, гарантируйте следующее:
Microsoft Windows не требует дополнительные драйверы, которые будут устанавливаться и формироваться, но Linux (и macOS) потребуют. Следующие разделы включают конкретные инструкции для каждого типа системы.
Microsoft Windows XP и более новые включают по крайней мере одного драйвер ODBC для Microsoft SQL Server, таким образом, дополнительные действия, вероятно, не требуются на вашей системе. Много вариантов драйвера SQL Server существуют, как описано в этой секции.
Можно проверить информацию о драйвере ODBC, запустив
Windows ODBC Data Source Administrator, который доступен с
домашней страницы мастера миграции MySQL Workbench.
Альтернативно, откройте терминал Windows и выполните
odbcad32.exe. Откройте вкладку
Drivers, чтобы видеть что-то подобное:
Рис. 10.39. Windows ODBC Data Source Administrator: Драйверы SQL Server
Общие драйверы ODBC, доступные в Windows:
XX.X представляет номер основной версии для SQL Server, таким образом, подлинное имя могло бы быть "SQL Server Native Client 11.0".
Решите, какой драйвер вы хотите использовать, и помните его имя как показано в ODBC Data Source Administrator. Это собственное имя используется в MySQL Workbench, чтобы соединиться с вашим экземпляром SQL Server.
Подготовка драйверов в Linux.
FreeTDS version 0.92 или больше требуется. Многие дистрибутивы предлагают более старые версии FreeTDS, таким образом, это, возможно, должно быть установлено отдельно. Кроме того, версия FreeTDS, обеспеченная дистрибутивом, может также быть собрана для неправильной библиотеки ODBC (обычно unixODBC вместо iODBC, с которой работает MySQL Workbench). Из-за этого необходимо будет, вероятно, построить эту библиотеку самому.
Скрипт предоставлен, чтобы собрать FreeTDS, используя варианты, требуемые
для MySQL Workbench. Можно найти его в
/usr/share/mysql-workbench/extras/build_freetds.sh
в Linux или в
MySQLWorkbench.app/Contents/SharedSupport/build_freetds.sh в macOS.
Чтобы использовать его, выполните эти шаги:
Использование FreeTDS с iODBC.
Собирая FreeTDS для использования с iODBC, это должно быть собрано с
командной строкой --enable-odbc-wide.
Обеспеченный скрипт build_freetds.sh
делает это для вас.
Для компилирования удостоверьтесь, что установили
заголовки iODBC. Для Linux имя зависит от диспетчера пакетов вашей системы,
но общие названия libiodbc-devel (RPM-системы)
или libiodbc2-dev (Debian-системы).
Для macOS заголовки идут с системой, и никакое дополнительное действие не
требуется для этого шага.
При использовании Oracle Enterprise Linux, Redhat, CentOS и подобных
необходимо настроить хранилище EPEL в yum, чтобы найти пакет
libiodbc-devel. См.
здесь.
mkdir ~/freetds, чтобы создать каталог
в рамках пользовательского корневого каталога.build_freetds.sh в
~/freetds..tar.gz в каталог
~/freetds. Удостоверьтесь, что получили версию
0.92 FreeTDS или более новую.cd ~/freetdsbuild_freetds.sh.make install из пути, данного скриптом.Рис. 10.40. Откройте ODBC Administrator
Название файла драйвера libtdsodbc.so,
он расположен в /usr/lib или
/usr/local/lib. Например, на вкладке
ODBC Drivers нажмите
и заполните описание (имя) и
путь к файлу драйвера. Помните имя, которое вы определяете здесь, поскольку
оно будет необходимо позже. Сохраните драйвер.
Рис. 10.41. ODBC Driver Add/Setup

Только имя файла драйвера требуется, в то время как имя настроечного файла может остаться неопределенным.
Посмотрите примечания установки FreeTDS для Linux, раздел 10.5.2.2.
Эта секция сосредотачивается на создании связи с исходным Microsoft SQL Server, потому что создание подключения MySQL является стандартной операцией.
Предпосылка: вы уже установили и формировали необходимый драйвер Microsoft SQL Server на системе с MySQL Workbench.
Выберите как систему баз данных и заполните опции, как описано в этой секции.
Рис. 10.42. SQL Server Connection Parameters: пример в Windows
Database System: Microsoft SQL Server
Нажмите , чтобы подтвердить, что параметры правильны.
Выберите как исходную систему баз данных и заполните опции, как описано в этой секции.
Рис. 10.43. SQL Server Connection Parameters: пример в Linux
Параметры связи включают:
Альтернативно, выберите , если вы определили DSN, создавая драйвер SQL Server. Доступные предварительно сконфигурированные варианты DSN будут доступны, чтобы выбрать.
Имя в качестве примера "Workbench FreeTDS" или "FreeTDS", но это имя, которое вы определили ранее, таким образом, это может или может не быть "FreeTDS". Используйте ODBC Administrator, чтобы найти правильное имя драйвера, поскольку иначе связь прервется.
Если ваша связь сервера MSSQL работает, но импорт данных потерпел неудачу, это могло бы быть потому, что эта опция включена.
Нажмите , чтобы подтвердить, что параметры правильны.
Параметры связи подобны Linux, см. раздел 10.5.3.2.
Следующая таблица показывает отображение между типами данных Microsoft SQL Server (источник) и MySQL.
Таблица 10.2. Отображение типов
| Исходный тип | Тип в MySQL | Комментарий |
|---|---|---|
| INT | INT | |
| TINYINT | TINYINT | Флаг UNSIGNED установлен в MySQL. |
| SMALLINT | SMALLINT | |
| BIGINT | BIGINT | |
| BIT | TINYINT(1) | |
| FLOAT | FLOAT | Значение точности используется для размера ресурса хранения в обоих. |
| REAL | FLOAT | |
| NUMERIC | DECIMAL | |
| DECIMAL | DECIMAL | |
| MONEY | DECIMAL | |
| SMALLMONEY | DECIMAL | |
| CHAR | CHAR/LONGTEXT | В зависимости от его длины. У MySQL Server 5.6 и выше могут быть столбцы CHAR с длиной до 255 знаков. Что-либо большее мигрируется как LONGTEXT. |
| NCHAR | CHAR/LONGTEXT | В зависимости от его длины. У MySQL Server 5.6 и выше могут быть столбцы VARCHAR с длиной до 65535 знаков. Что-либо большее мигрируется к одному из типов TEXT. В MySQL набор символов строки зависит от набора символов столбца вместо типа данных. |
| VARCHAR | VARCHAR/MEDIUMTEXT/LONGTEXT | В зависимости от его длины. У MySQL Server 5.6 и выше могут быть столбцы VARCHAR с длиной до 65535 знаков. Что-либо большее мигрируется к одному из типов TEXT. |
| NVARCHAR | VARCHAR/MEDIUMTEXT/LONGTEXT | В зависимости от его длины. У MySQL Server 5.6 и выше могут быть столбцы VARCHAR с длиной до 65535 знаков. Что-либо большее мигрируется к одному из типов TEXT. В MySQL набор символов строки зависит от набора символов столбца вместо типа данных. |
| DATE | DATE | |
| DATETIME | DATETIME | |
| DATETIME2 | DATETIME | Диапазон дат в MySQL: от '1000-01-01 00:00:00.000000' до '9999-12-31 23:59:59.999999'. Доли секунды сохранены, начиная с MySQL Server 5.6.4. |
| SMALLDATETIME | DATETIME | |
| DATETIMEOFFSET | DATETIME | |
| TIME | TIME | |
| TIMESTAMP | TIMESTAMP | |
| ROWVERSION | TIMESTAMP | |
| BINARY | BINARY/MEDIUMBLOB/LONGBLOB | В зависимости от его длины. |
| VARBINARY | VARBINARY/MEDIUMBLOB/LONGBLOB | В зависимости от его длины. |
| TEXT | VARCHAR/MEDIUMTEXT/LONGTEXT | В зависимости от его длины. |
| NTEXT | VARCHAR/MEDIUMTEXT/LONGTEXT | В зависимости от его длины. |
| IMAGE | TINYBLOB/MEDIUMBLOB/LONGBLOB | В зависимости от его длины. |
| SQL_VARIANT | Миграция не поддерживается. | Нет определенной поддержки этого типа данных. |
| TABLE | Миграция не поддерживается. | Нет определенной поддержки этого типа данных. |
| HIERARCHYID | Миграция не поддерживается. | Нет определенной поддержки этого типа данных. |
| UNIQUEIDENTIFIER | VARCHAR(64) | Уникальный флаг установлен в MySQL. Нет определенной поддержки вставки значений уникального идентификатора. |
| SYSNAME | VARCHAR(160) | |
| XML | TEXT |
Перед переходом вам будет нужно следующее:
Загрузите и установите пакет MSI для psqlODBC. Выберите новейший файл на http://www.postgresql.org/ftp/odbc/versions/msi/, который будет внизу страницы загрузок. Это установит psqlODBC на вашей системе и позволит вам мигрировать от Postgresql на MySQL с помощью MySQL Workbench.
После установки iODBC, продолжите устанавливать драйверы PostgreSQL ODBC.
Загрузите исходные тексты psqlODBC с
http://www.postgresql.org/ftp/odbc/versions/src/. Имя файла будет
выглядеть подобно psqlodbc-09.03.0400.tar.gz.
Распакуйте архив, откройте терминал и
перейдите в нужный каталог. Процесс установки:
shell>cd the/src/directoryshell>./configure --with-iodbc --enable-pthreadsshell>makeshell>sudo make install
Проверьте установку, подтвердив, что файл
psqlodbcw.so в каталоге
/usr/local/lib.
Затем необходимо зарегистрировать новый драйвер ODBC.
Откройте iODBC Data Source Administrator, выполнив
iodbcadm-gtk в командной строке или запуском со
страницы Overview в MySQL Workbench Migration
Wizard, нажав кнопку .
Откройте вкладку ODBC Drivers в iODBC Data Source Administrator.
Рис. 10.44. iODBC Data Source Administrator

Нажмите и заполните форму следующими значениями:
/usr/local/lib/psqlodbcw.so.Нажмите кнопку .
Чтобы собрать psqlODBC в macOS, нужен
Xcode и его компонент "Command Line Tools", поскольку это включает
необходимый компилятор gcc. Xcode свободен и
доступен в AppStore. После установки XCode, откройте его и перейдите в
to ,
Downloads,
Components, затем установите компонент
"Command Line Tools".
Загрузите исходные тексты psqlODBC с http://www.postgresql.org/ftp/odbc/versions/src/. Используйте последнюю версию доступную для скачивания. Распакуйте архив во временную папку, откройте терминал и перейдите в эту папку. Процесс установки:
shell>cd the/src/directoryshell>./configure --with-iodbc --enable-pthreadsshell>CFLAGS="-arch i386 -arch x86_64" makeshell>sudo make install
После загрузки мастера Migration Wizard нажмите на странице Overview, чтобы начать процесс миграции. Вы сначала соединитесь с исходной базой данных PostgreSQL. Здесь вы предоставите информацию о PostgreSQL RDBMS, драйвере ODBC, который будет использоваться для миграции, и все параметры, требуемые для связи. Имя драйвера ODBC это то, которое вы настраиваете, когда зарегистрировали драйвер psqlODBC в менеджере драйверов.
Откройте список Database System. Он покажет каждую RDBMS, которая поддерживается на вашей системе. Выберите PostgreSQL. Ниже этого списка есть дополнительный список Stored Connection. Сохраненные связи будут перечислены здесь, которые являются связями, сохраненными после определения связи с Store connection for future use as.
Три варианта Connection Method:
ODBC (manually entered parameters):
Каждый параметр, например, имя пользователя, определяется отдельно.ODBC Data Source:
Для предварительно сконфигурированных источников данных (DSN) можно
произвольно создать DSN с использованием ODBC Administrator.ODBC (direct connection string):
Полная строка подключения ODBC.Драйвер psqlODBC не позволяет связь, не определяя имя базы данных.
Процесс миграции подобен другим базам данных. Посмотрите раздел 10.6.4 для получения информации о том, как мастер миграции мигрирует типы от PostgreSQL в MySQL и раздел 10.2.1 для общего руководства по миграции.
Следующая таблица показывает отображение между типами данных PostgreSQL (источник) и MySQL.
Таблица 10.3. Отображение типов
| Исходный тип | Тип MySQL | Комментарий |
|---|---|---|
| INT | INT | |
| SMALLINT | SMALLINT | |
| BIGINT | BIGINT | |
| SERIAL | INT | Установит AUTO_INCREMENT в определении таблицы. |
| SMALLSERIAL | SMALLINT | Установит AUTO_INCREMENT в определении таблицы. |
| BIGSERIAL | BIGINT | Установит AUTO_INCREMENT в определении таблицы. |
| BIT | BIT | |
| BOOLEAN | TINYINT(1) | |
| REAL | FLOAT | |
| DOUBLE PRECISION | DOUBLE | |
| NUMERIC | DECIMAL | |
| DECIMAL | DECIMAL | |
| MONEY | DECIMAL(19,2) | |
| CHAR | CHAR/LONGTEXT | В зависимости от его длины. У MySQL Server 5.6 и выше могут быть столбцы CHAR с длиной до 255 знаков. Что-либо большее мигрируется как LONGTEXT. |
| NATIONAL CHARACTER | CHAR/LONGTEXT | В зависимости от его длины. У MySQL Server 5.6 и выше могут быть столбцы VARCHAR с длиной до 65535 знаков. Что-либо большее мигрируется к одному из типов TEXT. В MySQL набор символов строки зависит от набора символов столбца вместо типа данных. |
| VARCHAR | VARCHAR/MEDIUMTEXT/LONGTEXT | В зависимости от его длины. У MySQL Server 5.6 и выше могут быть столбцы VARCHAR знаков. Что-либо большее мигрируется к одному из типов TEXT. |
| NATIONAL CHARACTER VARYING | VARCHAR/MEDIUMTEXT/LONGTEXT | В зависимости от его длины. У MySQL Server 5.6 и выше могут быть столбцы VARCHAR знаков. Что-либо большее мигрируется к одному из типов TEXT. В MySQL набор символов строки зависит от набора символов столбца вместо типа данных. |
| DATE | DATE | |
| TIME | TIME | |
| TIMESTAMP | DATETIME | |
| INTERVAL | TIME | |
| BYTEA | LONGBLOB | |
| TEXT | LONGTEXT | |
| CIDR | VARCHAR(43) | |
| INET | VARCHAR(43) | |
| MACADDR | VARCHAR(17) | |
| UUID | VARCHAR(36) | |
| XML | LONGTEXT | |
| JSON | LONGTEXT | |
| TSVECTOR | LONGTEXT | |
| TSQUERY | LONGTEXT | |
| ARRAY | LONGTEXT | |
| POINT | POINT | |
| LINE | LINESTRING | Хотя длина LINE бесконечна, а LINESTRING конечен в MySQL, это приближено. |
| LSEG | LINESTRING | A LSEG похож на LINESTRING только с двумя точками. |
| BOX | POLYGON | A BOX это POLYGON с пятью точками и прямыми углами. |
| PATH | LINESTRING | |
| POLYGON | POLYGON | |
| CIRCLE | POLYGON | A POLYGON используется, чтобы представить CIRCLE. |
| TXID_SNAPSHOT | VARCHAR |
Выполните модернизацию версии сервера MySQL, чтобы перейти на последнюю версию. Типичный мастер миграции может мигрировать MySQL к MySQL, и более простой мастер Schema Transfer Wizard может также использоваться.
Мастер MySQL Schema Transfer помогает вам переместить свои данные от более старой версии сервера MySQL в иную (как правило, более позднюю) версию MySQL. Этот инструмент миграции предназначается для разработчиков, поскольку это более просто, чем типичный мастер миграции, потому что это мигрирует только MySQL к MySQL. Данные передаются не на основе последовательного снимка, таким образом, они работают лучше всего на локальных серверах MySQL. Вы не должны использовать этого мастера на производственных серверах MySQL.
Чтобы открыть мастера, выберите , из главного меню.
Рис. 10.45. MySQL Schema Transfer Wizard: Обзор
Прочитайте текст обзора и нажмите .
Рис. 10.46. MySQL Schema Transfer Wizard: выбор связи
Выберите свои целевое и исходное подключения MySQL. После выбора и тестирования ваших подключений MySQL нажмите .
Рис. 10.47. MySQL Schema Transfer Wizard: выбор схемы
Выберите схемы для миграции и нажмите , чтобы начать копировать выбранные схемы с источника.
Рис. 10.48. MySQL Schema Transfer Wizard: копирование базы данных
Просмотрите Message Log, чтобы подтвердить, что миграция, закончена с успехом. Нажмите , чтобы смотреть резюме результатов.
Рис. 10.49. MySQL Schema Transfer Wizard: Результаты
Нажмите , чтобы закрыть мастер.
Для визуальной пошаговой демонстрации мастера миграции посмотрите раздел 10.2.1.
Связь установлена с входными и выходными серверами баз данных.
Выберите источник, который мигрирует к MySQL. Выберите Database System, которая мигрирует, и другие параметры связи изменятся соответственно.
Это определение связи может быть сохранено, используя
Store connection for future use as,
есть также опция .
Рис. 10.50. MySQL Workbench: Выбор источника (параметры)
Цель это база данных MySQL, которая будет содержать мигрировавшие данные. Выберите существующую связь MySQL Workbench или из выпадающего списка, чтобы создать новое подключение MySQL.
Рис. 10.51. MySQL Workbench: Выбор цели

Получите список доступных баз данных и выберите определенные базы данных (и таблицы), которые вы хотите мигрировать к MySQL.
Список схем получается от входной и выходной RDBMS. Учетная запись, используемая для связи, должна иметь соответствующие привилегии для листинга и чтения схем, которые вы хотите мигрировать. Целевые настройки подключения RDBMS будут также проверены. Это автоматизированный информационный шаг, который сообщает, ошибки и общую информацию.
Шаги, которые выполняются, включают: соединение с источником, проверку связи и получение списка схем из источника.
Рис. 10.52. MySQL Workbench: получение списка схем
Выберите базы данных, которые вы хотите мигрировать к MySQL.
Шаг Schema Name Mapping Method предоставляет следующие возможности для перехода с Microsoft SQL Server:
Этот пример использует Microsoft SQL Server в качестве источника RDMS. Хотя варианты будут отличаться для других систем баз данных, логика остается той же самой.
Рис. 10.53. MySQL Workbench Migration: выбор схем
Исходные метаданные получены из источника RDBMS и перепроектированы. Это автоматизированный информационный шаг, который сообщает об ошибках и общей информации. Просмотрите записи и затем нажмите .
Рис. 10.54. MySQL Workbench: анализ источника
Объекты, обнаруженные стадией Reverse Engineer Source, сделаны доступными здесь. Доступные объекты включают таблицы, представления и хранимые подпрограммы, но только объекты таблицы выбраны по умолчанию. Используйте , чтобы отключить отдельные объекты таблицы.
Рис. 10.55. MySQL Workbench: Исходные объекты

Перепроектированные объекты из источника RDBMS автоматически преобразовываются в MySQL-совместимые объекты. Тип данных по умолчанию и отображения значения столбца по умолчанию используются, произведенные объекты и определения столбца могут быть просмотрены и отредактированы на следующем шаге.
Выполненные шаги включают перемещение выбранных объектов и создание запросов SQL CREATE.
Рис. 10.56. MySQL Workbench Migration: миграция

Используйте блок View, чтобы выбрать секцию, чтобы отредактировать. Кнопка доступна на каждой странице, и это показывает произведенный код MySQL, который соответствует выбранному объекту.
Рис. 10.57. MySQL Workbench: Редактирование вручную
: представление объекта, которое позволяет вам рассматривать и редактировать определения объектов. Дважды щелкните по строке, чтобы изменить имена целевых объектов.
Рис. 10.58. MySQL Workbench: редактирование вручную (все объекты)
: покажет все отображения столбца таблицы и позволяет вам индивидуально просмотреть и исправить отображение для всех типов столбца, значений по умолчанию и других признаков.
Рис. 10.59. MySQL Workbench Migration: редактирование вручную (отображения столбцов)
Определяет дополнительные параметры настройки для целевой схемы. Параметры конфигурации включают:
Рис. 10.60. MySQL Workbench Migration: целевые варианты создания
Скрипты SQL, произведенные для мигрировавших объектов схемы, будут теперь выполнены в целевой базе данных. Можно контролировать выполнение, если ошибки будут, то они будут исправлены на следующем шаге. Данные о таблице также будут мигрироваться в более позднем шаге.
Рис. 10.61. MySQL Workbench Migration: создание схем

Произведенные объекты перечисляются здесь, наряду с сообщениями об ошибках.
Код миграции также может быть рассмотрен и отредактирован здесь. Чтобы внести изменения, выберите объект, отредактируйте код запроса и нажмите . Повторите этот процесс для каждого объекта, который будет отредактирован. Наконец, нажмите , чтобы сохранить результаты.
требуется, чтобы сохранить любые изменения здесь. Это выполнит предыдущий шаг миграции (Create Schemas) с измененным кодом, затем продолжит процесс миграции. Это также означает, что ранее сохраненная схема будет удалена.
Рис. 10.62. MySQL Workbench Migration: создайте целевые результаты
Данные передаются из источника RDBMS к целевой базе данных MySQL. Экран установки включает следующие варианты:
Data Copy:
Этот более быстрый метод избегает передачи данных через MySQL Workbench ине требует иметь постоянное сетевое соединение между серверами MySQL. Этот выбор был добавлен в MySQL Workbench 6.3.0.
Допустимые здесь опции:
2.
Это количество задач (соединений с базой данных),
используемых, копируя данные.Рис. 10.63. MySQL Workbench Migration: Data Transfer Setup
В зависимости от выбранного варианта это передаст данные целевой RDMS (по умолчанию), произведет простой скрипт для передачи данных онлайн или произведет скрипт, чтобы выполнить на исходном хосте, который производит zip-файл, содержащий скрипт передачи и данные, который будет выполнен на целевом хосте. Произвольно, смотрите журнал, чтобы подтвердить.
Рис. 10.64. MySQL Workbench Migration: оптовая передача данных
Показывает итоговый отчет, который суммирует процесс миграции. Следующие данные показывают пример отчета о миграции.
Рис. 10.65. MySQL Workbench Migration: Отчет о миграции

Часто задаваемые вопросы с ответами.