Преобразование базы MSSQL в MySQL
Дано: backup-файл БД MSSQL с именем TEST
Задача: преобразовать базу данных из формата MSSQL в формат MySQL.
Процедура: соединиться с MSSQL Server, выгрузить структуру данных и сами данные. Сохранить в файл в виде SQL команд.
Импортировать в базу данных MySQL.
Если под рукой нет работающего MSSQL сервера, то его нужно поставить. Для этого у Microsoft есть бесплатная версия SQL Server Express Edition
Установка
1.Загрузить и проинсталлировать
2.Загрузить и проинсталлировать
3.Загрузить и установить средство для создания и управления базами данных MSSQL
Восстановление базы данных из резервной копии:
1.Запустить из Программы-> Microsoft SQL Server 2005 -> Среда SQL Server Management Studio Express
2.Соединиться с сервером SERVERSQLEXPRESS (или если вы хотите импортировать БД из внешнего сервера, то указать имя удаленного сервера БД)
3.Правой кнопкой нажать на папку «Базы данных», выбрать «Восстановить базу данных»
4.Выбрать источник для восстановления «с устройства» -> «…» -> «Носитель резервной копии файл » -> «Добавить» -> «Тип файла: Все файлы» ->Выбрать файл «TEST», в котором находиться резервная копия БД.
5.В качестве источника назначения выбрать БД из списка, или ввести имя новой БД.
6. Отметить флажком найденный резервный набор в списке
Поставить флажок «Перезаписать существующую базу данных». Проверить правильно ли указаны пути в колонке «Восстановить как», если папка не будет существовать, то восстановление будет не возможно. По умолчанию в этой колонке подставляются пути того компьютера, на котором производилось резервное копирование.
8.Нажать «Ок». Должно появиться сообщение об успешности восстановления.
Теперь мы имеем рабочую копию нашей БД.
Конвертация из MSSQL в MYSQL.
Для конвертации воспользуемся скриптом VB for Application
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.Вставить содержимое
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
-
23 Апрель 2007 в 10:27
Проверено! Работает!
(возьми с ЕМС-овцев бабло за ПеАр) 🙂
31 Июль 2007 в 14:55
спасибо, эта статья очень помогла.
вот дополнение к ней по поводу использования MySQL Migration Toolkit и разных граблей, которые встречаются, если не совсем хорошо разбираться в теме.
http://flash-mx.ru/forum/topic_show.pl?tid=2060
я переносил базу форума, и у меня не сработал скрипт mssql2mysql.txt, который приводится в вашей статье.
6 Декабрь 2007 в 16:20
Ох и намучился я с процедарами. А в остальном – спасибо! Работает!
7 Октябрь 2008 в 15:19
Отличная статья!
Треть дня потратил на конвертацию, потом нашёл статью, за 10 мин всё сделал. ВСЁ ОТЛИЧНО РАБОТАЕТ!
26 Май 2009 в 12:05
Спасибо автору за статью и спасибо автору VB скрипта. Все очень просто и красиво 🙂
25 Июнь 2009 в 11:57
Огромное спасибо за статью! Долго искал способ переноса и вот нашел!
СПАСИБО
17 Декабрь 2009 в 08:57
а с blob’ами нормально будет7
15 Февраль 2010 в 14:18
с помощью скрипта нельзя связи у таблиц перенести...
18 Январь 2013 в 00:07
спасибо большое) правда поздно нашёл заметку.....но на будущее буду знать)