Как экспортировать данные из SQL Server 2005 в MySQL

Я бился головой о SQL Server 2005, пытаясь получить много данных. Мне дали базу данных с почти 300 таблицами в ней, и мне нужно превратить ее в базу данных MySQL. Мой первый призыв состоял в том, чтобы использовать bcp, но, к сожалению, он не создает действительного CSV - строки не инкапсулируются, поэтому вы не можете иметь дело с любой строкой, в которой есть строка с запятой (или что-то еще, что вы используете в качестве разделителя) и мне все равно придется вручную писать все операторы создания таблиц, поскольку очевидно, что CSV ничего не сообщает вам о типах данных.

Было бы лучше, если бы был какой-то инструмент, который мог бы подключаться как к SQL Server, так и к MySQL, а затем делать копию. Вы теряете представления, хранимые процедуры, триггер и т. д., Но нетрудно скопировать таблицу, которая использует только базовые типы, из одной БД в другую ... не так ли?

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

Я слышал, что SQLYob может это сделать. webyog.com/en> здесь: searchsqlserver.techtarget.com/tip/…>

borjab 22.09.2008 17:27

Я слышал, как несколько человек успешно используют MSSQL2MySQL, но я не могу за это поручиться.

Greg Hurlman 01.08.2008 20:24

Этот инструмент - именно то, о чем вы просили: Полное преобразование предприятия. Да, вы теряете представления, процедуры и триггеры, но он оптимизирован для огромных таблиц. Другое решение (более дорогое), которое переводит все объекты (процедуры и т. д.) - SqlTran SQL Server для MySQL

Damir Bulic 02.08.2012 12:35

Аналогичный ответ здесь: stackoverflow.com/questions/11619177/…

Jacob 02.08.2012 15:34

@borjab: SQLyog раньше работал с ODBC в более старых версиях, но больше не работает, поэтому это не вариант для этой работы.

BlaM 30.08.2012 16:07
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
87
5
95 926
5

Ответы 5

Развертывание собственного PHP-решения, безусловно, сработает, хотя я не уверен, есть ли хороший способ автоматически дублировать схему из одной БД в другую (возможно, это был ваш вопрос).

Если вы просто копируете данные и / или вам все равно нужен собственный код для преобразования измененных схем между двумя БД, я бы рекомендовал использовать PHP 5.2+ и библиотеки PDO. Вы сможете подключиться с помощью PDO ODBC (и использовать драйверы MSSQL). У меня было много проблем с переносом больших текстовых полей и многобайтовых символов из MSSQL в PHP с использованием других библиотек.

Еще один инструмент, который стоит попробовать, - это Пакет SQLMaestro. Определить точный инструмент немного сложно, но у них есть множество инструментов, как бесплатных, так и приобретаемых, которые решают широкий спектр задач для нескольких платформ баз данных. Я бы посоветовал сначала попробовать инструмент Data Wizard для MySQL, поскольку я считаю, что у него будет подходящий инструмент для «импорта», который вам нужен.

Лучший способ, который я нашел, - это Набор средств миграции MySQL, предоставляемый MySQL. Я успешно использовал его для некоторых крупных проектов миграции.

+1 - Теперь это EOL, и MySQL Workbench будет включать плагин миграции (предыдущая версия 5.2), но пока используйте следующую ссылку: dev.mysql.com/downloads/gui-tools/5.0.html

Mark Robinson 28.04.2010 18:58

не хочет преобразовывать столбцы DATE или DATETIME :(

Robert Ivanc 22.05.2010 05:39

Примечание. В настоящее время MySQL Migration Toolkit недоступен для Linux (из dev.mysql.com/doc/migration-toolkit/en/…)

mkirk 23.03.2011 23:25

Обратите внимание, что для My SQL Migration Toolkit требуется 32-разрядная версия JDK 5 update 8 или более поздняя (должна быть версия 5, версия 6 не будет работать), которую вы можете скачать здесь: tinyurl.com/5snd6y3

casterle 19.10.2011 18:26

В выпусках SQL Server 2005 "Standard", "Developer" и "Enterprise" есть SSIS, который заменил DTS из SQL server 2000. SSIS имеет встроенное соединение с собственной базой данных, и вы можете найти соединение, для которого кто-то написал MySQL. Здесь - один из примеров. После того, как у вас будут подключения, вы сможете создать пакет SSIS, который перемещает данные между ними.

Мне не нужно было перемещать данные из SQLServer в MySQL, но я полагаю, что после установки соединения MySQL оно работает так же, как перемещение данных между двумя базами данных SQLServer, что довольно просто.

Используя MSSQL Management Studio, я перенес таблицы с MySQL OLE DB. Щелкните правой кнопкой мыши свою базу данных и перейдите в «Задачи-> Экспорт данных», оттуда вы можете указать источник MsSQL OLE DB, источник MySQL OLE DB и создать сопоставления столбцов между двумя источниками данных.

Скорее всего, вы захотите заранее настроить базу данных и таблицы в месте назначения MySQL (при экспорте таблицы будут создаваться автоматически, но это часто приводит к сбою). Вы можете быстро создать таблицы в MySQL, используя «Задачи-> Создать сценарии», щелкнув правой кнопкой мыши базу данных. После того, как ваши сценарии создания будут сгенерированы, вам нужно будет выполнить поиск / замену ключевых слов и типов, существующих в MSSQL на MYSQL.

Конечно, вы также можете сделать резервную копию базы данных, как обычно, и найти утилиту, которая восстановит резервную копию MSSQL на MYSQL. Однако я не уверен, существует ли он.

Другие вопросы по теме