89 votes

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

J'ai été frapper ma tête contre SQL Server 2005 en essayant d'obtenir un grand nombre de données. J'ai une base de données avec près de 300 tableaux en elle et j'ai besoin de transformer cela en une base de données MySQL. Mon premier appel à l'utilisation de la pca, mais malheureusement, il ne produit pas valide CSV - chaînes ne sont pas encapsulées, de sorte que vous ne pouvez pas traiter avec une ligne qui a une chaîne avec une virgule (ou ce que vous utilisez comme un délimiteur) et j'aurais encore à écrire à la main toutes les instructions create table, comme évidemment CSV n'est pas tout vous dire sur les types de données.

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

Quelqu'un sait d'un tel outil? Je n'ai pas l'esprit la façon dont de nombreuses hypothèses ou quelles simplifications se produire, tant qu'il prend en charge integer, float, date / heure et chaîne de caractères. Je dois faire beaucoup de l'élagage, de la normalisation, etc. de toute façon donc je ne m'inquiète pas sur le fait de garder les clés, les relations ou quelque chose comme ça, mais j'ai besoin de l'ensemble initial de données rapide!

59voto

Nick Berardi Points 31361

La meilleure façon que j'ai trouvé est le MySQL Migration Toolkit fournies par MySQL. Je l'ai utilisé avec succès pour certains grands projets de migration.

9voto

Sean Points 310

SQL Server 2005 "Standard", "Développeur" et "Entreprise" éditions, SSIS, qui a remplacé le DTS de Sql server 2000. SSIS a une construite dans le cadre de son propre DB, et vous pouvez trouver un lien que quelqu'un d'autre a écrit pour MySQL. Ici 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 de déplacer les données à partir de sql server vers MySQL, mais j'imagine qu'une fois la connexion MySQl est installé, il fonctionne de la même manière que le déplacement de données entre deux SQLServer DBs, ce qui est assez simple.

8voto

pix0r Points 17854

Rouler votre propre solution PHP va certainement travailler si je ne suis pas sûr qu'il y est un bon moyen pour dupliquer automatiquement le schéma d'un DB pour les autres (peut-être que c'était votre question).

Si vous êtes juste de la copie de données, et/ou vous avez besoin d'un code personnalisé de toute façon pour convertir entre schémas modifiés entre les deux de la DB, je recommande l'utilisation de PHP 5.2+ et l'AOP bibliothèques. Vous serez en mesure de se connecter en utilisant PDO ODBC (et l'utilisation de MSSQL pilotes). J'ai eu beaucoup de problèmes pour obtenir de grands champs de texte et de caractères multi-octets de MSSQL en PHP à l'aide d'autres bibliothèques.

6voto

Dillie-O Points 16780

Un autre outil pour essayer serait le SQLMaestro suite - http://www.sqlmaestro.com C'est un peu délicat maintenir l'outil précis, mais ils ont une variété d'outils, à la fois libre et pour l'achat de traiter un large éventail de tâches pour plusieurs plateformes de base de données. Je vous suggère d'essayer les Données de l'Assistant de l'outil premier pour MySQL, puisque je crois que vous avez la bonne "importer" de l'outil dont vous avez besoin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X