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

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

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

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

1.08.2008 16:22:42
Я слышал, как несколько человек успешно использовали MSSQL2MySQL , но я не могу поручиться за это сам.
Greg Hurlman 1.08.2008 16:24:57
Я слышал, что SQLYob может это сделать. < webyog.com/ru > здесь: < searchsqlserver.techtarget.com/tip/… >
borjab 22.09.2008 13:27:49
Этот инструмент именно то, что вы просили: Full Convert Enterprise . Правда, вы теряете представления, процедуры и триггеры, но он сильно оптимизирован для больших таблиц. Другим решением (более дорогим), которое переводит все объекты (процедуры и т. Д.), Является SqlTran SQL Server для MySQL
Damir Bulic 2.08.2012 08:35:57
Аналогичный ответ здесь: stackoverflow.com/questions/11619177/…
Jacob 2.08.2012 11:34:36
@borjab: SQLyog раньше работал с ODBC в старых версиях, но больше не работает, так что это не вариант для этой работы.
BlaM 30.08.2012 12:07:18
5 ОТВЕТОВ

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

58
1.08.2008 17:54:08
+1 - теперь EOL, и MySQL Workbench собирается включить плагин миграции (более ранняя версия 5.2), но сейчас используйте следующую ссылку: dev.mysql.com/downloads/gui-tools/5.0.html
Mark Robinson 28.04.2010 14:58:55
не хочет конвертировать столбцы DATE или DATETIME :(
Robert Ivanc 22.05.2010 01:39:28
Примечание. В настоящее время MySQL Migration Toolkit недоступен для Linux (с dev.mysql.com/doc/migration-toolkit/en/… )
mkirk 23.03.2011 20:25:37
Обратите внимание, что My SQL Migration Toolkit требуется 32-разрядная версия JDK 5 с обновлением 8 или новее (должна быть версия 5, версия 6 не будет работать), которую вы можете скачать здесь: tinyurl.com/5snd6y3
casterle 19.10.2011 14:26:55

SQL Server 2005 «Standard», «Developer» и «Enterprise» имеют SSIS , который заменил DTS с Sql server 2000. SSIS имеет встроенное соединение со своей собственной БД, и вы можете найти соединение, которое кто-то другой написал для MySQL , Вот один пример. Как только у вас есть ваши соединения, вы сможете создать пакет служб SSIS, который перемещает данные между ними.

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

8
15.09.2008 16:11:20

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

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

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

8
15.09.2008 16:23:13

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

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

7
1.08.2008 16:36:42

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

5
1.08.2008 16:47:54