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

voix
80

J'ai été cogner la tête contre SQL Server 2005essayant d'obtenir un grand nombre de données sur. On m'a donné une base de données avec près de 300 tables en elle et je dois transformer cela en une base de données MySQL. Mon premier appel était d'utiliser bcp , mais malheureusement , il ne produit pas de CSV valide - les chaînes ne sont pas encapsulées, de sorte que vous ne pouvez pas faire face à une ligne qui a une chaîne avec une virgule (ou tout ce que vous utilisez comme séparateur) et je dois encore écrire à la main toutes les déclarations créer de table, évidemment CSV ne vous dit pas sur les types de données.

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

Quelqu'un sait-il d'un tel outil? Cela ne me dérange pas combien il fait des hypothèses ou des simplifications de se produire, tant qu'il supporte entier, flottant, datetime et chaîne. Je dois faire beaucoup de taille, normalisant, etc. de toute façon, donc je ne me soucie pas de garder les clés, les relations ou quelque chose comme ça, mais je dois l'ensemble initial de données rapide!

Créé 01/08/2008 à 17:22
source utilisateur
Dans d'autres langues...                            


5 réponses

voix
58

La meilleure façon que je l' ai trouvé est la boîte à outils MySQL Migration fournies par MySQL. Je l' ai utilisé avec succès pour certains grands projets de migration.

Créé 01/08/2008 à 18:54
source utilisateur

voix
8

Utilisation de la gestion MSSQL studio i avec tables avons transmis le OLE DB MySQL. Faites un clic droit sur votre base de données et allez à « Tasks-> Exporter des données » à partir de là, vous pouvez spécifier une source MsSQL OLE DB, la source OLE DB MySQL et créer les correspondances de colonnes entre les deux sources de données.

Vous souhaiterez probablement configurer la base de données et des 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 de MySQL en utilisant le « Tasks-> Générer des scripts » en cliquant droit sur la base de données. Une fois que vos scripts de création sont générés, vous devrez parcourir et rechercher / remplacer des mots-clés et les types qui existent dans MSSQL MYSQL.

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

Créé 15/09/2008 à 17:23
source utilisateur

voix
8

SQL Server 2005 « Standard », « Developer » et les éditions « Enterprise » ont SSIS , qui a remplacé DTS du serveur Sql 2000. SSIS a construit dans le cadre de son propre DB, et vous pouvez trouver une connexion que quelqu'un d' autre a écrit pour MySQL . Voici 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 dû déplacer les données de SQL Server à MySQL, mais j'imagine qu'une fois la connexion MySQl est installé, il fonctionne comme données entre deux SQLServer DB, ce qui est assez simple.

Créé 15/09/2008 à 17:11
source utilisateur

voix
7

Rouler votre propre solution PHP va certainement fonctionner si je ne sais pas s'il y a une bonne façon de dupliquer automatiquement le schéma d'une base de données à l'autre (peut-être cela était votre question).

Si vous êtes copier des données, et / ou vous avez besoin du code personnalisé de toute façon de convertir entre les schémas modifiés entre les deux DBs, je vous conseille d'utiliser PHP 5.2+ et les bibliothèques AOP. Vous serez en mesure de vous connecter en utilisant PDO ODBC (et utilisez des pilotes MSSQL). J'ai eu beaucoup de difficultés à obtenir de grands champs de texte et des caractères multi-octets de MSSQL en PHP avec d'autres bibliothèques.

Créé 01/08/2008 à 17:36
source utilisateur

voix
5

Un autre outil pour essayer serait la suite SQLMaestro - http://www.sqlmaestro.com Il est un peu difficile à clouer vers le bas l'outil précis, mais ils ont une variété d'outils, à la fois libre et à l' achat qui gèrent une grande variété de tâches pour les plates - formes de bases de données multiples. Je vous conseille d' essayer l'outil Data Wizard première pour MySQL, car je pense que cela va avoir l'outil approprié « import » dont vous avez besoin.

Créé 01/08/2008 à 17:47
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more