Comment exporter des données de SQL Server 2005 vers MySQL

Translate

Je me suis cogné la tête contreSQL Server 2005essayer d'obtenir beaucoup de données. On m'a donné une base de données avec près de 300 tables et je dois la transformer en base de données MySQL. Mon premier appel a été d'utiliser bcp mais malheureusement, il ne produit pas de CSV valide - les chaînes ne sont pas encapsulées, vous ne pouvez donc pas gérer les lignes contenant une chaîne avec une virgule (ou tout ce que vous utilisez comme délimiteur) et je devrais toujours écrire à la main toutes les instructions de création de table, car évidemment CSV ne vous dit rien sur les types de données.

Ce serait mieux s'il y avait un outil capable de se connecter à la fois à SQL Server et à MySQL, puis faites une copie. Vous perdez des vues, des procédures stockées, des déclencheurs, etc., mais il n'est pas difficile de copier une table qui n'utilise que des types de base d'une base de données à une autre ... n'est-ce pas?

Quelqu'un connaît-il un tel outil? Je ne me soucie pas du nombre d'hypothèses qu'il fait ou des simplifications qui se produisent, tant qu'il prend en charge les nombres entiers, flottants, datetime et string. De toute façon, je dois faire beaucoup d'élagage, de normalisation, etc.

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

Le meilleur moyen que j'ai trouvé est leBoîte à outils de migration MySQLfourni par MySQL. Je l'ai utilisé avec succès pour certains grands projets de migration.

La source
Translate

Les éditions "Standard", "Developer" et "Enterprise" de SQL Server 2005 ontSSIS, qui a remplacé DTS du serveur Sql 2000. SSIS a une connexion intégrée à sa propre base de données, et vous pouvez trouver une connexion que quelqu'un d'autre a écrite pour MySQL.Icien est un exemple. Une fois que vous avez vos connexions, vous devriez être en mesure de créer un package SSIS qui déplace les données entre les deux.

Je n'ai pas eu à déplacer des données de SQlServer vers MySQL, mais j'imagine qu'une fois la connexion MySQl installée, cela fonctionne de la même manière que le déplacement de données entre deux bases de données SQLServer, ce qui est assez simple.

La source
Elton Lee
Translate

En utilisant MSSQL Management Studio, j'ai fait la transition de tables avec MySQL OLE DB. Faites un clic droit sur votre base de données et allez dans "Tâches-> Exporter les données" à partir de là, vous pouvez spécifier une source MsSQL OLE DB, la source MySQL OLE DB et créer les mappages de colonnes entre les deux sources de données.

Vous voudrez probablement configurer la base de données et les tables à l'avance sur la destination MySQL (l'exportation voudra créer les tables automatiquement, mais cela entraîne souvent un échec). Vous pouvez créer rapidement les tables dans MySQL à l'aide de "Tâches-> Générer des scripts" en faisant un clic droit sur la base de données. Une fois vos scripts de création générés, vous devrez parcourir et rechercher / remplacer les mots-clés et les types qui existent dans MSSQL vers MYSQL.

Bien sûr, vous pouvez également sauvegarder la base de données comme d'habitude et trouver un utilitaire qui restaurera la sauvegarde MSSQL sur MYSQL. Je ne sais pas s'il en existe un.

La source
Translate

Faire rouler votre propre solution PHP fonctionnera certainement bien que je ne sois pas sûr qu'il existe un bon moyen de dupliquer automatiquement le schéma d'une base de données à l'autre (c'était peut-être votre question).

Si vous copiez simplement des données et / ou que vous avez de toute façon besoin de code personnalisé pour convertir entre les schémas modifiés entre les deux bases de données, je recommanderais d'utiliser PHP 5.2+ et les bibliothèques PDO. Vous pourrez vous connecter en utilisant PDO ODBC (et utiliser les pilotes MSSQL). J'ai eu beaucoup de problèmes pour obtenir de grands champs de texte et des caractères multi-octets de MSSQL vers PHP en utilisant d'autres bibliothèques.

La source
Translate

Un autre outil à essayer serait la suite SQLMaestro -http://www.sqlmaestro.comIl est un peu difficile de déterminer l'outil précis, mais ils disposent d'une variété d'outils, gratuits et à l'achat, qui gèrent une grande variété de tâches pour plusieurs plates-formes de bases de données. Je suggérerais d'essayer d'abord l'outil Data Wizard pour MySQL, car je pense que cela aura le bon outil "d'importation" dont vous avez besoin.

La source