Як експортувати дані з SQL Server 2005 у MySQL [закрито]


86

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

Що було б краще, якби існував якийсь інструмент, який міг би підключитися як до SQL Server, так і до MySQL, а потім зробити копію. Ви втрачаєте подання, збережені процедури, тригер тощо, але неважко скопіювати таблицю, яка використовує лише базові типи з однієї БД в іншу ... чи не так?

Хтось знає про такий інструмент? Я не проти, скільки припущень він робить або які спрощення відбуваються, якщо він підтримує ціле число, плаваюче число, дату та рядок. Мені так чи інакше доводиться робити багато обрізки, нормалізації тощо, тому мені не байдуже зберігати ключі, відносини чи щось подібне, але початковий набір даних потрібен швидко!


1
Я чув, як кілька людей успішно використовують MSSQL2MySQL , але я не можу за це поручитися.
Грег Харлман,

1
Я чув, що SQLYob може це зробити. < webyog.com/uk > тут: < searchsqlserver.techtarget.com/tip/… >
borjab

Цей інструмент - саме те, про що ви просили: Full Convert Enterprise . Правда, ви втрачаєте подання, процедури та тригери, але це дуже оптимізовано для величезних таблиць. Іншим рішенням (більш дорогим), яке перекладає всі об'єкти (процедури тощо), є SQL Server SQL Server на MySQL
Дамір Буліч

1
Подібна відповідь тут: stackoverflow.com/questions/11619177/…
Яків

1
@borjab: SQLyog раніше працював з ODBC у старих версіях, але більше не працює, тому для цієї роботи це не варіант.
BlaM

Відповіді:


59

Найкращий спосіб, який я знайшов, - це інструмент міграції MySQL, наданий MySQL. Я успішно використовував його для деяких великих міграційних проектів.


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

не хоче перетворювати стовпці DATE або DATETIME :(
Роберт Айвен

1
Примітка: На даний момент MySQL Migration Toolkit недоступний для Linux (з dev.mysql.com/doc/migration-toolkit/en/… )
mkirk,

1
Зверніть увагу, що My SQL Migration Toolkit вимагає 32-розрядної версії JDK 5 оновлення 8 або пізнішої версії (повинна бути версії 5, версія 6 не буде працювати), яку ви можете завантажити тут: tinyurl.com/5snd6y3
casterle

9

Використовуючи MSSQL Management Studio, я перемістив таблиці до бази даних MySQL OLE. Клацніть правою кнопкою миші на вашій базі даних і перейдіть до "Завдання-> Експортувати дані", звідки ви зможете вказати джерело бази даних MsSQL OLE, джерело бази даних MySQL OLE і створити відображення стовпців між двома джерелами даних.

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

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


9

Видання SQL Server 2005 "Стандарт", "Розробник" та "Підприємство" мають SSIS , який замінив DTS з SQL сервера 2000. SSIS має вбудоване підключення до власної БД, і ви можете знайти з'єднання, для якого писав хтось інший MySQL. Ось один із прикладів. Після встановлення з’єднань ви зможете створити пакет SSIS, який переміщує дані між ними.

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


8

Прокат власного рішення PHP, безумовно, спрацює, хоча я не впевнений, чи є хороший спосіб автоматично дублювати схему з однієї БД в іншу (можливо, це було ваше запитання).

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


6

Іншим інструментом, який спробувати, буде набір SQLMaestro . Це трохи хитро закріпити точний інструмент, але вони мають безліч інструментів, як безкоштовних, так і для придбання, які вирішують широкий спектр завдань для багатьох платформ баз даних. Я пропоную спробувати спочатку інструмент Майстер даних для MySQL, оскільки я вважаю, що у вас буде відповідний інструмент "імпорту", який вам потрібен.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.