68 votes

Comment importer un fichier .bak de SQL Server dans MySQL ?

Le titre est explicite. Existe-t-il un moyen d'effectuer directement ce type d'importation ?

3 votes

0 votes

Question épique bro ! J'ai finalement réussi à importer le fichier bak de mon hébergeur pourri où tous les outils SQL étaient cassés.

70voto

Richard Harrison Points 14891

Les fichiers .BAK du serveur SQL sont au format Microsoft Tape (MTF) : http://www.fpns.net/willy/msbackup.htm

Le fichier bak contiendra probablement les fichiers LDF et MDF que le serveur SQL utilise pour stocker la base de données.

Vous devrez utiliser le serveur SQL pour les extraire. SQL Server Express est gratuit et fera l'affaire.

Donc, installez l'édition SQL Server Express, et ouvrez le SQL Server Powershell. Là, exécutez sqlcmd -S <COMPUTERNAME>\SQLExpress (en étant connecté en tant qu'administrateur)

puis lancez la commande suivante.

restore filelistonly from disk='c:\temp\mydbName-2009-09-29-v10.bak';
GO

Le contenu de la sauvegarde sera listé - ce dont vous avez besoin, ce sont les premiers champs qui vous indiquent les noms logiques - l'un sera la base de données actuelle et l'autre le fichier journal.

RESTORE DATABASE mydbName FROM disk='c:\temp\mydbName-2009-09-29-v10.bak'
WITH 
   MOVE 'mydbName' TO 'c:\temp\mydbName_data.mdf', 
   MOVE 'mydbName_log' TO 'c:\temp\mydbName_data.ldf';
GO

A ce stade, vous avez extrait la base de données - installez alors Le "Sql Web Data Administrator" de Microsoft. en même temps que cet outil d'exportation et vous aurez un script SQL qui contient la base de données.

4 votes

Le problème est que SQL Server 2008 Express Edition ne peut gérer que des fichiers de base de données de 10 Go et moins. J'ai un fichier de 30 Go avec lequel je dois travailler. La connexion Internet au travail est trop lente pour télécharger l'image .iso de 4 Go de la version complète de SQL Server 2008 R2, que j'obtiens gratuitement de dreamspark.com en tant qu'étudiant. J'ai donc exactement la même question.

0 votes

Le lien du premier logiciel d'installation est cassé

0 votes

Êtes-vous sûr que le format du fichier est MTF ? Lorsque j'essaie d'utiliser le ligne de commande mtf-tool pour lister le contenu d'un .bak j'obtiens une erreur...

9voto

AutoCiudad Points 128

MySql a une application pour importer des données depuis Microsoft sql. Etapes :

  1. Ouvrir MySql Workbench
  2. Cliquez sur "Migration de la base de données" (s'il n'apparaît pas, vous devez l'installer à partir de la mise à jour de MySql).
  3. Suivez la liste des tâches de migration en utilisant l'assistant simple.

2 votes

MySql Workbench est nul. Il ne peut pas gérer les encodages de caractères assez bien

9 votes

@Sean, si vous constatez un problème avec MySQL Workbench, déposez un rapport de bogue. La migration est une affaire compliquée, les implémentations ont donc besoin de quelques tours pour devenir stables.

8voto

Je n'ai pas réussi à trouver un moyen de le faire directement.

A la place, j'ai importé le fichier bak dans SQL Server 2008 Express, puis j'ai utilisé Boîte à outils de migration MySQL .

Ça a marché comme un charme !

0 votes

Oui, l'importation a bien fonctionné pour moi. Cliquez avec le bouton droit de la souris sur le nœud "bases de données" et cliquez sur "importer". Sélectionnez d'abord le fichier BAK, puis choisissez "base de données". Il obtient automatiquement le nom de la base de données à partir du fichier .bak chargé et le place dans la liste (pour créer la nouvelle base de données). Woohoo - 6 jours plus tard !

0 votes

MySQL Migration Toolkit a atteint EOL. voir dev.mysql.com/downloads/gui-tools/5.0.html

1 votes

La fonctionnalité "Migration de la base de données" fait désormais partie de l'outil de gestion de la base de données. Banc d'essai MySQL

3voto

RollerCosta Points 1264
  1. Ouvrez SQL Server Management Studio sur votre machine locale.
  2. Cliquez à droite sur le dossier Databases. Dans le menu contextuel, sélectionnez Nouvelle base de données.
  3. Entrez un nom de base de données, puis cliquez sur Ok.
  4. Cliquez à droite sur l'icône de la nouvelle base de données. Dans le menu contextuel, sélectionnez Tâches -> Restaurer -> Base de données.
  5. Sélectionnez l'option From Device, puis cliquez sur le bouton de navigation.
  6. Cliquez sur Ajouter et naviguez jusqu'au fichier approprié. Cliquez sur Ok.
  7. Dans la fenêtre Restaurer la base de données, cochez la case située à côté de votre fichier BAK.
  8. Passez à la page des options. Cochez la case Overwrite the existing database. Cliquez sur Ok.
  9. Vérifiez le contenu de votre base de données, qui est maintenant active sur votre machine locale.

3voto

levi rosol Points 1901

Bien que ma connaissance de MySQL soit limitée, je ne pense pas que vous ayez beaucoup de chance de faire cela. Cependant, vous devriez pouvoir migrer toutes vos données en restaurant la base de données sur un serveur MSSQL, puis en créant un package SSIS ou DTS pour envoyer vos tables et vos données vers le serveur MySQL.

J'espère que cela vous aidera

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