Преобразование базы MSSQL в MySQL

Дано: backup-файл БД MSSQL с именем TEST

Задача: преобразовать базу данных из формата MSSQL в формат MySQL.

Процедура: соединиться с MSSQL Server, выгрузить структуру данных и сами данные. Сохранить в файл в виде SQL команд.


Импортировать в базу данных MySQL.
Если под рукой нет работающего MSSQL сервера, то его нужно поставить. Для этого у Microsoft есть бесплатная версия SQL Server Express Edition

Установка SQL Server Express Edition 2005

1.Загрузить и проинсталлировать Microsoft .NET Framework 2.0
2.Загрузить и проинсталлировать SQL Server 2005 Express Edition. Практически все опции при инсталляции можно не менять
3.Загрузить и установить средство для создания и управления базами данных MSSQL SQL Server Management Studio Express

Восстановление базы данных из резервной копии:

1.Запустить из Программы-> Microsoft SQL Server 2005 -> Среда SQL Server Management Studio Express
2.Соединиться с сервером SERVERSQLEXPRESS (или если вы хотите импортировать БД из внешнего сервера, то указать имя удаленного сервера БД)
3.Правой кнопкой нажать на папку «Базы данных», выбрать «Восстановить базу данных»
4.Выбрать источник для восстановления «с устройства» -> «…» -> «Носитель резервной копии файл » -> «Добавить» -> «Тип файла: Все файлы» ->Выбрать файл «TEST», в котором находиться резервная копия БД.
5.В качестве источника назначения выбрать БД из списка, или ввести имя новой БД.
6. Отметить флажком найденный резервный набор в списке
MSSQL SERVER восстановление БД

7.Зайти во вкладку «Параметры»

Поставить флажок «Перезаписать существующую базу данных». Проверить правильно ли указаны пути в колонке «Восстановить как», если папка не будет существовать, то восстановление будет не возможно. По умолчанию в этой колонке подставляются пути того компьютера, на котором производилось резервное копирование.
MSSQL SERVER восстановление БД

8.Нажать «Ок». Должно появиться сообщение об успешности восстановления.

Теперь мы имеем рабочую копию нашей БД.

Конвертация из MSSQL в MYSQL.

Для конвертации воспользуемся скриптом VB for Application
http://www.kofler.cc/mysql/mssql2mysql.txt
1.Копируем в буфер все содержимое страницы
2.Запускаем Microsoft Word
Для Word 2003:
В меню Сервис -> Сценарии -> Редактор Visual Basic (Tools->Macro…->Visual Basic Editor)
Для Word 2007:
Нажать на Office Button-> Word Options->Show Developer tab in the Ribbon. На панели появится вкладка Developer. В ней нажать на кнопку Visual Basic.
3.Правой кнопкой нажать на Проект (Project). Выбрать Вставить –> Модуль (Insert -> Module)
4.Вставить содержимое http://www.kofler.cc/mysql/mssql2mysql.txt
5.Изменить
Const MSSQL_HOST = "(local)"
Const MSSQL_DB_NAME = "Northwind"
на
Const MSSQL_HOST = "SERVERSQLEXPRESS "
Const MSSQL_DB_NAME = "TEST"
где TEST имя базы данных MSSQL
6.Изменить
Const OUTPUT_TO_FILE = 0 '1—> write file (latin1 encoding);
Const OUTPUT_FILENAME = "c:export.sql"
на
Const OUTPUT_TO_FILE = 1 '1—> write file (latin1 encoding);
Const OUTPUT_FILENAME = "c:export.sql"
при необходимости можно изменить путь к файлу, в который будет осуществляться экспорт.
7.В панели нажать на кнопку Run. Выбрать имя сценария (MacroName) Main и нажать Run.
8.После выполнения должно появиться сообщение о завершении.
В результате мы получили SQL файл в формате MySQL.
Этот файл в некоторых случая стоит просмотреть и при необходимости скорректировать.

Импорт в MySQL:

Можно осуществить различными способами:
1.Если есть доступ к shell на сервере.
a.Копируем файл export.sql на сервер
b.В командной строке сервера
mysql –u username –p имяБД < export.sql

2.Если доступа к shell нет, то можно воспользоваться, например www.phpmyadmin.net или EMS MySQL Manager Lite http://www.sqlmanager.net/en/products/mysql/manager/download

-

Получать новые сообщения по Email

9 комментариев на “Преобразование базы MSSQL в MySQL”

  1. Гриша пишет:

    Проверено! Работает!
    (возьми с ЕМС-овцев бабло за ПеАр) 🙂

  2. Nox Noctis пишет:

    спасибо, эта статья очень помогла.

    вот дополнение к ней по поводу использования MySQL Migration Toolkit и разных граблей, которые встречаются, если не совсем хорошо разбираться в теме.

    http://flash-mx.ru/forum/topic_show.pl?tid=2060

    я переносил базу форума, и у меня не сработал скрипт mssql2mysql.txt, который приводится в вашей статье.

  3. Hide IP пишет:

    Ох и намучился я с процедарами. А в остальном – спасибо! Работает!

  4. Олег пишет:

    Отличная статья!
    Треть дня потратил на конвертацию, потом нашёл статью, за 10 мин всё сделал. ВСЁ ОТЛИЧНО РАБОТАЕТ!

  5. Yustas пишет:

    Спасибо автору за статью и спасибо автору VB скрипта. Все очень просто и красиво 🙂

  6. Эдуард(Уфа) пишет:

    Огромное спасибо за статью! Долго искал способ переноса и вот нашел!
    СПАСИБО

  7. денис пишет:

    а с blob’ами нормально будет7

  8. slr пишет:

    с помощью скрипта нельзя связи у таблиц перенести...

  9. Артём пишет:

    спасибо большое) правда поздно нашёл заметку.....но на будущее буду знать)

Оставить комментарий