web-dev-qa-db-fra.com

Comment convertir un fichier MDB (Access) en MySQL (ou fichier SQL pur)?

Est-il possible de créer un Dump de commandes SQL à partir d'une base de données Microsoft Access? J'espère convertir ce fichier MDB en une base de données MySQL afin de l'importer afin de ne pas avoir à passer par l'étape CSV.

Je m'attendrais même à ce qu'un fichier de vidage MSSQL contienne encore des commandes SQL exploitables, mais je ne connais rien à MSSQL, veuillez me le faire savoir.

68
George Bailey

Vous voulez convertir mdb en mysql (transfert direct vers mysql ou mysql dump)?

Essayez un logiciel appelé Accès à MySQL

Access to MySQL est un petit programme qui convertira les bases de données Microsoft Access en MySQL.

  • Interface de l'assistant.
  • Transférez les données directement d'un serveur à un autre.
  • Créez un fichier de vidage.
  • Sélectionnez les tables à transférer.
  • Sélectionnez les champs à transférer.
  • Transférer des bases de données protégées par mot de passe.
  • Prend en charge à la fois la sécurité partagée et la sécurité au niveau utilisateur.
  • Transfert facultatif des index.
  • Transfert facultatif des enregistrements.
  • Transfert facultatif des valeurs par défaut dans les définitions de champ.
  • Identifie et transfère les types de champs de numéros automatiques.
  • Interface de ligne de commande.
  • Installation facile, désinstallation et mise à niveau.

Voir le lien ci-dessus pour un tutoriel pas à pas avec des captures d'écran. 

68
Teson

Si vous avez accès à une boîte Linux avec mdbtools installé, vous pouvez utiliser ce script Bash Shell (enregistrer sous mdbconvert.sh):

#!/bin/bash

TABLES=$(mdb-tables -1 $1)

MUSER="root"
MPASS="yourpassword"
MDB="$2"

MYSQL=$(which mysql)

for t in $TABLES
do
    $MYSQL -u $MUSER -p$MPASS $MDB -e "DROP TABLE IF EXISTS $t"
done

mdb-schema $1 mysql | $MYSQL -u $MUSER -p$MPASS $MDB

for t in $TABLES
do
    mdb-export -D '%Y-%m-%d %H:%M:%S' -I mysql $1 $t | $MYSQL -u $MUSER -p$MPASS $MDB
done

Pour l'invoquer, appelez-le simplement comme ceci:

./mdbconvert.sh accessfile.mdb mysqldatabasename

Il importera toutes les tables et toutes les données.

37
Nicolay77

J'ai modifié le script de Nicolay77 pour exporter la base de données sur stdout (méthode habituelle des scripts unix) afin de pouvoir exporter les données dans un fichier texte ou de les diriger vers le programme de mon choix. Le script résultant est un peu plus simple et fonctionne bien.

Quelques exemples:

./to_mysql.sh database.mdb > data.sql

./to_mysql.sh database.mdb | mysql destination-db -u user -p

Voici le script modifié (sauvegarder dans to_mysql.sh)

#!/bin/bash
TABLES=$(mdb-tables -1 $1)

for t in $TABLES
do
    echo "DROP TABLE IF EXISTS $t;"
done

mdb-schema $1 mysql

for t in $TABLES
do
    mdb-export -D '%Y-%m-%d %H:%M:%S' -I mysql $1 $t
done
24
mikkom

Outils de base de données gratuits ne pas exporter la table RELATIONSHIPS, mais vous pouvez utiliser ceci: convertir MS Access en MySQL avec des relations

Fonctionne bien et exporte toutes les relations vers MySQL.

enter image description here

7
Ivan Cachicatari

Essayez le Data Wizard pour MySQL . C’est un outil permettant de convertir la structure et les données de toute source compatible ADO (par exemple, MS Access) en bases de données MySQL . Voir un bref guide des chaînes de connexion pour créer une chaîne de connexion dans votre fichier MS Access.

5
Tihonov Eugene

Essayez les Data Transformation Services de Microsoft

5
user715990

Nous avons utilisé ESF Database Convert plusieurs fois à cette fin précise. DTS était généralement trop floconneux. Et les recommandations sur la page MySQL étaient lamentablement obsolètes.

4
Michael Pryor

Les utilisateurs OSX peuvent utiliser Nicolay77 ou mikkom qui utilise l'utilitaire mdbtools. Vous pouvez l'installer via Homebrew. Juste avoir votre homebrew installé et puis aller

$ homebrew install mdbtools

Créez ensuite l'un des scripts décrits par les gars et utilisez-le. J'ai utilisé celui de mikkom, converti tous mes fichiers mdb en sql.

$ ./to_mysql.sh myfile.mdb > myfile.sql

(qui contient plus d'une table)

4
Egor Guriyanov

J'ai utilisé SQLYog Ultimate pour importer des données à partir d'un fichier mdb, le processus était très simple.

vous devrez peut-être installer ces outils de support.

Moteur de base de données MS Access

et téléchargez SQLYog Ultimate ci-dessous

Choisissez SQLYog, vous pouvez utiliser la version d'évaluation pour cela

2
Harsha

J'utilise un Mac, je le fais pour convertir;

  1. Téléchargez ACCDB MDB Explorer http://accdb-mdb-Explorer.fren.softonic.com/mac
  2. Ouvrez le fichier MDB
  3. Exporter en SQL
  4. Importer dans MySQL avec MySQL Workbench.
1
Dilip Rajkumar

Cet outil mac MDB/ACCDB Viewer a bien fonctionné pour mes besoins. Un essai gratuit m'a permis de prouver que tout fonctionnait comme prévu et que la moitié des rangées étaient exportées. Une version complète était nécessaire pour obtenir la totalité de la base de données/des tables exportées.

1
petednz - fuzion

Si vous n'êtes pas trop préoccupé par la confidentialité des fichiers .mdb que vous voulez convertir, sachez que ce site m'a permis de récupérer deux bases de données .mdb Access âgées de 15 ans (rappelez-vous le bon vieux temps où ASP gouverné le Web?) en seulement deux minutes: http://www.mdbopener.com/

Les bases de données ont été converties en fichiers Excel, avec une feuille pour chaque tableau. Juste ce dont j'avais besoin. Je n'aurais pas pu être plus rapide pour récupérer mes (très) anciennes données ...

Les identifiants étant conservés dans chaque table, il était aussi facile que tout de reconvertir cela en mysql (après l'avoir enregistré au format CSV) - encore une fois, en quelques minutes à peine. 

0
barakadam

J'ai essayé https://www.rebasedata.com/convert-mdb-to-mysql-online et cela fonctionne plutôt bien.

Solution en ligne sans besoin d'inscription.

0
SandroMarques