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

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

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

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

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

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

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

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

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

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

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

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

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

  • Ошибка в запросе datetime
  • Разбор выражения строки в столбцы
  • Что такое клиентское соединение с пользователем: None, Host: None, Name: compress_gtid_table в MySQL Workbench?
  • N (th) Самый высокий уровень зарплаты
  • Как выбрать из определенного количества строк?
  • Структура SQL для нескольких таблиц
  • Есть ли способ отсортировать месяцы в ячейке таблицы
  • Tinyint против бит
  • Как получить первый день и последний день месяца из данного месяца и года в sql
  • Предлагает ли SQL Server все, что угодно, например, MySQL ON DUPLICATE KEY UPDATE
  • Не удалось обновить / удалить / усечь таблицу с помощью внешнего ключа
  • Interesting Posts

    конкатенация результатов из SQL-запросов и столбцов NULL

    Проблема производительности хранимых процедур SQL Server 2005

    Условный случай SQL

    Entity Framework – взаимодействие с Orace и SQL Server

    SQL Server автоматически увеличивает колонку без первичного ключа

    Оптимизировать запрос на обновление

    Каково значение NULL в SQL Server?

    напишите запрос, чтобы заполнить приведенную выше таблицу с 1 января 2008 г. по 31 декабря 2014 г.

    Пользователь предоставил доступ к хранимой процедуре, но не может выполнить запрос

    Строка SQL Server для таблицы

    Могут ли ограничения FK работать с несколькими таблицами?

    Как получить доступ к таблице Temp в хранимой процедуре, которая создается в другой хранимой процедуре?

    Как создать последовательность в SQL Server 2008

    Преобразовать ВНЕШНЮЮ ПРИМЕНИМОСТЬ В ЛЕВАЮЩИЙ ПРИСОЕДИНЕНИЕ

    Есть ли быстрый способ сообщить метаданные базы данных в SQL Server 2005?

    Давайте будем гением компьютера.