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

Je me suis cogné la tête contre SQL Server 2005 en essayant d'obtenir beaucoup de données. On m'a donné une base de données avec près de 300 tables et je dois transformer cela en une 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, donc vous ne pouvez pas traiter une ligne qui contient une virgule avec une virgule (ou tout ce que vous utilisez comme délimiteur) et je serais toujours obligé d'écrire toutes les instructions create table, car CSV ne vous dit rien sur les types de données.

Ce qui serait mieux, c'est s'il y avait un outil qui pourrait se connecter à SQL Server et à MySQL, puis en faire une copie. Vous perdez des vues, des procédures stockées, un déclencheur, etc., mais il n'est pas difficile de copier une table qui utilise uniquement les types de base d'une base de données à une autre ... est-ce?

Est-ce que quelqu'un connaît un tel outil? Cela ne me dérange pas combien d'hypothèses il fait ou quelles simplifications se produisent, tant qu'il prend en charge entier, float, datetime et chaîne. Je dois faire beaucoup d'élagage, de normalisation, etc. de toute façon, donc je ne me soucie pas de garder les clés, les relations ou quoi que ce soit de ce genre, mais j'ai besoin de l'ensemble initial de données rapidement!

0
ajouté édité
Vues: 3
J'ai entendu quelques personnes utiliser MSSQL2MySQL avec succès, mais je ne peux pas me porter garant pour moi-même.
ajouté l'auteur Greg Hurlman, source
@borjab: SQLyog utilisé pour travailler avec ODBC dans les anciennes versions mais ne le fait plus, donc ce n'est pas une option pour ce travail.
ajouté l'auteur BlaM, source
J'ai entendu dire que SQLYob peut le faire. << a href = "http://www.webyog.com/fr/>" rel = "nofollow noreferrer"> webyog.com/en/> ; ici: << a href = "http://searchsqlserver.techtarget.com/tip/0,289483,sid87_gci1196733,00.html#>" rel = "nofollow noreferrer"> searchsqlserver.techtarget.com/tip/… < / a>;
ajouté l'auteur borjab, source
Cet outil est exactement ce que vous avez demandé: Full Convert Enterprise . Certes, vous perdez des vues, des procédures et des déclencheurs, mais il est hautement optimisé pour les tables volumineuses. Une autre solution (plus coûteuse) qui traduit tous les objets (procédures, etc.) est SqlTran SQL Server à MySQL
ajouté l'auteur Damir Bulic, source
Réponses similaires ici: MySQL migration" > stackoverflow.com/questions/11619177/…
ajouté l'auteur Jacob, source

4 Réponses

Le meilleur moyen que j'ai trouvé est le MySQL Migration Toolkit fourni par MySQL. Je l'ai utilisé avec succès pour certains grands projets de migration.

0
ajouté
ne veut pas convertir les colonnes DATE ou DATETIME :(
ajouté l'auteur Robert Ivanc, source
Remarque: Actuellement, MySQL Migration Toolkit n'est pas disponible pour Linux (à partir de dev.mysql.com/doc/migration-toolkit/en/… )
ajouté l'auteur mkirk, source
+1 - C'est maintenant EOL, et MySQL Workbench va inclure un plugin de migration (version précédente 5.2) mais pour l'instant utilisez le lien suivant: dev.mysql.com/downloads/gui-tools/5.0.html
ajouté l'auteur Mark Robinson, source
Notez que My SQL Migration Toolkit nécessite la version 32 bits de JDK 5 mise à jour 8 ou ultérieure (doit être ver 5, ver 6 ne fonctionnera pas), que vous pouvez télécharger ici: tinyurl.com/5snd6y3
ajouté l'auteur casterle, source

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

Si vous ne faites que copier des données, et / ou que vous avez besoin d'un code personnalisé pour convertir des schémas modifiés entre les deux DB, je recommande 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 en PHP en utilisant d'autres bibliothèques.

0
ajouté

Un autre outil à essayer serait la suite SQLMaestro - http://www.sqlmaestro.com C'est un peu difficile à clouer bas de l'outil précis, mais ils ont une variété d'outils, à la fois gratuits et à l'achat qui traitent une grande variété de tâches pour plusieurs plates-formes de base de données. Je suggère d'essayer l'outil Assistant de données d'abord pour MySQL, car je crois qu'il aura l'outil "importation" dont vous avez besoin.

0
ajouté

SQL Server 2005 "Standard", "Developer" et "Enterprise" éditions ont SSIS , qui a remplacé DTS à partir 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. Voici un exemple. Une fois que vous avez vos connexions, vous devriez être capable de créer un paquet SSIS qui déplace les données entre les deux.

Je n'ai pas eu à déplacer les données de SQlServer vers MySQL, mais j'imagine qu'une fois la connexion MySQl installée, cela fonctionne comme déplacer des données entre deux DB SQLServer, ce qui est assez simple.

0
ajouté