Я бился головой, SQL Server 2005
пытаясь получить много данных. Мне дали базу данных с почти 300 таблицами в ней, и мне нужно превратить ее в базу данных MySQL. Мой первый призыв состоял в том, чтобы использовать bcp, но, к сожалению, он не создает действительный CSV - строки не инкапсулируются, поэтому вы не можете иметь дело с любой строкой, в которой есть строка с запятой (или что бы вы ни использовали в качестве разделителя) и мне все равно придется вручную писать все операторы создания таблиц, поскольку очевидно, что CSV ничего не сообщает вам о типах данных.
Было бы лучше, если бы был какой-то инструмент, который мог бы подключаться как к SQL Server, так и к MySQL, а затем делать копию. Вы теряете представления, хранимые процедуры, триггер и т. Д., Но нетрудно скопировать таблицу, которая использует только базовые типы, из одной БД в другую ... не так ли?
Кто-нибудь знает о таком инструменте? Я не против, сколько предположений он делает или какие упрощения происходят, если он поддерживает целые числа, числа с плавающей запятой, дату и время и строку. В любом случае мне нужно много обрезать, нормализовать и т. Д., Поэтому я не забочусь о сохранении ключей, отношений или чего-то подобного, но мне нужен начальный набор данных как можно быстрее!
Ответы:
Лучший способ, который я нашел, - это MySQL Migration Toolkit, предоставляемый MySQL. Я успешно использовал его для нескольких крупных проектов миграции.
источник
Используя MSSQL Management Studio, я перенес таблицы с MySQL OLE DB. Щелкните правой кнопкой мыши свою базу данных и перейдите в «Задачи-> Экспорт данных», оттуда вы можете указать источник MsSQL OLE DB, источник MySQL OLE DB и создать сопоставления столбцов между двумя источниками данных.
Скорее всего, вы захотите заранее настроить базу данных и таблицы в месте назначения MySQL (при экспорте таблицы будут создаваться автоматически, но это часто приводит к сбою). Вы можете быстро создать таблицы в MySQL, используя «Задачи-> Создать сценарии», щелкнув правой кнопкой мыши базу данных. После того, как ваши сценарии создания будут сгенерированы, вам нужно будет выполнить поиск / заменить ключевые слова и типы, которые существуют в MSSQL на MYSQL.
Конечно, вы также можете сделать резервную копию базы данных, как обычно, и найти утилиту, которая восстановит резервную копию MSSQL на MYSQL. Однако я не уверен, существует ли он.
источник
Версии SQL Server 2005 "Standard", "Developer" и "Enterprise" имеют SSIS , который заменил DTS из SQL server 2000. SSIS имеет встроенное соединение с собственной базой данных, и вы можете найти соединение, для которого кто-то написал MySQL. Вот один пример. После того, как у вас будут подключения, вы сможете создать пакет SSIS, который перемещает данные между ними.
Мне не нужно было перемещать данные из SQLServer в MySQL, но я полагаю, что после установки соединения MySQL оно работает так же, как перемещение данных между двумя базами данных SQLServer, что довольно просто.
источник
Развертывание собственного PHP-решения, безусловно, сработает, хотя я не уверен, есть ли хороший способ автоматически дублировать схему из одной БД в другую (возможно, это был ваш вопрос).
Если вы просто копируете данные и / или вам все равно нужен собственный код для преобразования измененных схем между двумя БД, я бы рекомендовал использовать PHP 5.2+ и библиотеки PDO. Вы сможете подключиться с помощью PDO ODBC (и использовать драйверы MSSQL). У меня было много проблем с переносом больших текстовых полей и многобайтовых символов из MSSQL в PHP с использованием других библиотек.
источник
Еще один инструмент, который стоит попробовать, - это пакет SQLMaestro . Определить точный инструмент немного сложно, но у них есть множество инструментов, как бесплатных, так и приобретаемых, которые решают широкий спектр задач для нескольких платформ баз данных. Я бы посоветовал сначала попробовать инструмент Data Wizard для MySQL, так как я считаю, что у него будет нужный вам инструмент «импорта».
источник