Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MySQL Discussion :

Import d'un fichier mdf dans mysql


Sujet :

MySQL

  1. #1
    Membre à l'essai
    Import d'un fichier mdf dans mysql
    Bonjour

    Un client nous a envoyé un fichier mdf de sa base de données.

    Je voudrais récuperer cette base de données pour la recupérer dans mon serveur de base de données mariadb tournant sous debian 9.

    J'ai installé mysql workbench sur windows, importé le fichier mdf (je recupere bien le contenu de la base de données) et je génére le fichier sql de la base de données.

    Ensuite sur mon serveur debian, que j'utilise la commande:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    mysql -u root -p mysql-data < mysql-data-backup.sql


    ou bien

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;


    même résultat pour les deux commandes, c'est à dire que je n'ai rien dans la base de donnée sur mon serveur debian et cela sans message d'erreur en plus.

    donc

    1/ Est ce que importer un fichier mdf microsoft dans mysql linux est possible ?

    2/ si oui avez vous la procédure à suivre?

    Par avance merci

  2. #2
    Rédacteur

    Un fichier MDF est un fichier contenant le binaire de toutes ou parties des tables et index d'une base de données SQL Server. Ce n'est pas un fichier texte et il est absolument impossible d'extraire quoi que ce soit comme information de ce type de fichiers sans le moteurs MS SQL Server.
    Ce que vous devez faire est :
    1) installer une instance de MS SQL Server, par exemple 2017 édition developper (gratuite) https://go.microsoft.com/fwlink/?linkid=853016
    2) installer le client SQL Server management Studio pour pouvoir accéder au serveur https://go.microsoft.com/fwlink/?linkid=2094583
    3) accéder à SQL Server management Studio pour récupérer l'accès à la base
    4) pour récupérer la base il faut la créer par attachement du fichier .mdf en lançant la commande SQL suivante :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE DATABASE MabaseClient
        ON (FILENAME = 'MonChemin\MonFichier.mdf')
        FOR ATTACH_REBUILD_LOG;

    Dès lors la base va apparaître dans la liste des bases. Vous aurez alors accès à toutes les tables.
    Pour exporter toutes les tables, vous pouvez utiliser l'assistant qui est activable par clic droit sur le nom de la base, item : "Tâches / Géérer des scripts" et laissez vous guider par l'assistant.

    A +

    PS : si la base était constituée de plusieurs fichiers mdf (ou d'autres fichiers ndf) alors la recréation de la base est impossible.
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  3. #3
    Membre à l'essai
    Bonjour

    Merci pour tes infos.

    Bon coté base de données que je suis un pur newbie donc j'ai pas mal tatonné mais suis arrivé à un résultat:

    Donc sous Windows j'ai bien installé SQL server puis management studio et donc j'ai pu à partir du fichier mdf récuperer comme il se doit ma base qui s'affiche alors comme il faut dans management studio. Ouf.

    Ensuite reste donc le transfert vers mon serveur debian et mariadb

    Pour cela j'ai donc, toujours sous windows, installé MySQL Workbench, et via la fonction migration pu récupérer les tables que j'ai pu ensuite après quelques manips écrire dans ma base mariadb, re ouf.

    Mais malheureusement lors de la migration, je ne récupere que les tables, je ne recupere par les views et routine, pourtant dans la section "source objects" MySQL Workbench liste bien mes 133 views objects et mes 117 migrate routine objects, mais voila aprés avoir cliqué sur migration, j'ai dans la liste toutes les views object et routine objects qui sont marquées comme "Object was not migrated"

    Comment récupérer tous les objets et non pas que les tables?

    Par avance merci

  4. #4
    Rédacteur

    La plupart de ces objets ne sont pas compatible avec MySQL. En effet, MySQL en est resté à la norme SQL 2 datant de 1992 tandis que Oracle ou SQL Server sont à la norme 2015.... Donc il faudra tout faire à la main….

    Et oui, le libre, c'est un truc pauvre pour les pauvres !

    A +
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  5. #5
    Membre à l'essai
    Ok donc pas de possibilité d'automatiser la recupération de ces données

    Pour la réflexion sur les pauvres...faut pas généraliser il y a enormement de services que l'on utilise tous de nos jours et qui sont issus de l'opensource, et on est bien content de les avoir.

  6. #6
    Rédacteur

    Citation Envoyé par Minus63 Voir le message
    … Pour la réflexion sur les pauvres...faut pas généraliser il y a enormement de services que l'on utilise tous de nos jours et qui sont issus de l'opensource, et on est bien content de les avoir.
    Les avez-vous tous comparés avec des solutions "privées" pour affirmer que vous en êtes content ?

    A +
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.