Подтвердить что ты не робот

Как импортировать файл SQL Server.bak в MySQL?

Название самоочевидно. Есть ли способ непосредственно делать такой импорт?

4b9b3361

Ответ 1

Файлы .BAK с SQL-сервера указаны в формате Tape Microsoft (MTF): http://www.fpns.net/willy/msbackup.htm

Файл bak, вероятно, будет содержать файлы LDF и MDF, которые SQL-сервер использует для хранения базы данных.

Вам понадобится использовать SQL-сервер для их извлечения. SQL Server Express является бесплатным и будет выполнять эту работу.

Итак, установите версию SQL Server Express и откройте SQL Server Powershell. Там выполните sqlcmd -S <COMPUTERNAME>\SQLExpress (в то время как вы вошли в систему как администратор)

затем выполните следующую команду.

restore filelistonly from disk='c:\temp\mydbName-2009-09-29-v10.bak';
GO

В этом списке будет указано содержимое резервной копии - то, что вам нужно, это первые поля, которые указывают логические имена - одна будет фактической базой данных, а другая - файлом журнала.

RESTORE DATABASE mydbName FROM disk='c:\temp\mydbName-2009-09-29-v10.bak'
WITH 
   MOVE 'mydbName' TO 'c:\temp\mydbName_data.mdf', 
   MOVE 'mydbName_log' TO 'c:\temp\mydbName_data.ldf';
GO

На этом этапе вы извлекли базу данных - затем установите Microsoft "Sql Web Data Administrator" . вместе с этот инструмент экспорта, и у вас будет SQL script, который содержит базу данных.

Ответ 2

Мне не удалось найти способ сделать это напрямую.

Вместо этого я импортировал файл bak в SQL Server 2008 Express, а затем использовал Инструмент миграции MySQL.

Работал как шарм!

Ответ 3

В MySql есть приложение для импорта db из sql-сервера Microsoft. Шаги:

  • Откройте MySql Workbench
  • Нажмите "Миграция базы данных" (если она не отображается, вам необходимо установить ее из обновления MySql).
  • Следуйте списку задач миграции с помощью простого мастера.

Ответ 4

  • Откройте SQL Server Management Studio на локальной машине.
  • Щелкните правой кнопкой мыши папку "Базы данных". Во всплывающем меню выберите "Новая база данных".
  • Введите имя базы данных и нажмите "ОК" .
  • Щелкните правой кнопкой мыши значок новой базы данных. Во всплывающем меню выберите Задачи → Восстановить → База данных.
  • Выберите опцию "От устройства" и нажмите кнопку "Обзор".
  • Нажмите "Добавить" и перейдите к соответствующему файлу. Нажмите "ОК" .
  • В окне "Восстановить базу данных" установите флажок рядом с вашим файлом BAK.
  • Перейдите на страницу "Параметры". Установите флажок "Перезаписать существующую базу данных". Нажмите "ОК" .
  • Проверьте содержимое своей базы данных, которая теперь активна на вашей локальной машине.

Ответ 5

Хотя мой фон MySQL ограничен, я не думаю, что вам удалась это сделать. Однако вы должны перенести все свои данные, восстановив db на сервере MSSQL, затем создав пакет SSIS или DTS для отправки ваших таблиц и данных на сервер MySQL.

надеюсь, что это поможет

Ответ 6

Я очень сомневаюсь. Возможно, вы захотите использовать DTS/SSIS для этого, как говорит Леви. Можно подумать, что вы можете захотеть сделать это, не импортируя данные. Просто сделайте достаточно, чтобы собрать основные структуры таблицы. Затем вы захотите изменить структуру результирующей таблицы, потому что любая структура, которая, вероятно, будет создана, будет в лучшем случае шаткой.

Вам также может потребоваться сделать еще один шаг и создать промежуточную область, которая сначала берет все данные сначала в виде строки (varchar). Затем вы можете создать script, который выполняет проверку и преобразование, чтобы получить его в "реальной" базе данных, потому что две базы данных не всегда хорошо работают вместе, особенно при работе с датами.

Ответ 7

Базы данных SQL Server являются собственностью Microsoft. Возможны два варианта:

  • Дамп базы данных в формате CSV, XML или аналогичный формат, который вы затем загрузите в MySQL.

  • Установите соединение ODBC с MySQL и затем с помощью DTS передайте данные. Как предложил Чарльз Грэм, вам, возможно, придется создавать таблицы, прежде чем делать это. Но это так же просто, как вырезать и вставить из окон SQL Enterprise Manager в соответствующее окно MySQL.

Ответ 8

Метод, который я использовал, включал часть метода Ричарда Харрисона:

Итак, установите SQL Server 2008 Express издание,

Для этого требуется загрузка установщика веб-платформы "wpilauncher_n.exe" После того, как вы установили это, щелкните по выбору базы данных (вам также необходимо загрузить Frameworks и Runtimes)

После установки перейдите в командную строку Windows и:

используйте sqlcmd -S\SQLExpress (пока авторизовано как администратор)

затем выполните следующую команду.

восстановить файл из списка диск = 'C:\Temp\mydbName-2009-09-29-v10.bak'; GO В этом списке будет указано содержимое резервное копирование - то, что вам нужно, это первое поля, указывающие логические имена - одна будет фактической базой данных, а другая - файлом журнала.

ВОССТАНОВИТЬ БАЗА ДАННЫХ mydbName FROM disk = 'c:\temp\mydbName-2009-09-29-v10.bak' С MOVE 'mydbName' TO 'c:\temp\mydbName_data.mdf', MOVE 'mydbName_log' TO 'C:\Temp\mydbName_data.ldf'; GO

Я запускал установщик веб-платформы и с новой вкладки, в которую я установил SQL Server Management Studio, и просмотрел db, чтобы убедиться, что данные там...

В этот момент я попробовал инструмент, включенный в MSSQL "Мастер импорта и экспорта SQL", но результат дампа csv включал только имена столбцов...

Поэтому вместо этого я просто экспортировал результаты запросов, таких как "select * from users" из SQL Server Management Studio

Ответ 9

Для тех, кто пытается решение Ричарда выше, вот некоторые дополнительные сведения, которые могут помочь найти общие ошибки:

1) При запуске файла восстановления файлов вы можете получить операционную систему 5 (доступ запрещен). В этом случае откройте диспетчер конфигурации SQL Server и измените логин для SQLEXPRESS на пользователя с правами на локальную запись.

2) @ "Это отобразит содержимое резервной копии - то, что вам нужно, - это первые поля, которые говорят вам логические имена" - если в вашем файле указано более двух заголовков, вам нужно будет также учитывать, что делать с эти файлы в команде RESTORE DATABASE. Если вы не укажете, что делать с файлами за пределами базы данных и журнала, система, по-видимому, попытается использовать атрибуты, перечисленные в файле .bak. Восстановление файла из чужой среды приведет к появлению "Путь имеет недопустимые атрибуты. Он должен быть каталогом '(поскольку этот путь не существует на вашем компьютере). Простое предоставление инструкции MOVE устраняет эту проблему.

В моем случае появился третий файл типа FTData. Добавлена ​​команда MOVE:

MOVE 'mydbName_log' TO 'c:\temp\mydbName_data.ldf',
MOVE 'sysft_...' TO 'c:\temp\other';

в моем случае мне действительно нужно было создать новый каталог для третьего файла. Первоначально я попытался отправить его в ту же папку, что и файл .mdf, но при выполнении восстановления произошел ошибку "не удалось инициализировать правильно" в третьем файле FTData.

Ответ 10

Файл .bak из SQL Server специфичен для этого диалекта базы данных и несовместим с MySQL.

Попробуйте использовать etlalchemy, чтобы перенести базу данных SQL Server в MySQL. Это инструмент с открытым исходным кодом, который я создал для облегчения миграции между различными РСУБД.

Быстрая установка и примеры приведены здесь на странице github, и более подробное объяснение происхождения проекта можно найти здесь.