2009-02-24 7 views
2

J'ai récemment reçu un fichier de base de données MS Access .mdb et demandé de le rendre utilisable dans un système Linux. Ce que je recherche est un moyen de convertir la base de données Access en une base de données open-source telle que MySQL ou PostGres.Portage à partir de MS Access

Je n'ai pas MS Office, et c'est un projet ponctuel pour une organisation bénévole, donc je ne veux pas dépenser de l'argent si c'est évitable. Je cours Vista x64, et ai une virtualbox Linux, ainsi quelque chose utilisable dans l'un sera bon.

+0

Je sais que c'est une bataille perdue, mais: Vous n'avez pas de MDB MS Access, mais une MDB Jet. Quelqu'un peut l'avoir créé avec Access, mais si ce ne sont que des tables de données, tout ce que vous allez utiliser est Jet, pas la partie Access de la MDB. –

+0

Jet a été déprécié, donc il devrait * seulement * être utilisé en conjonction avec une application MS Access héritée (je dis «héritage» parce que sûrement de nouveaux projets devraient être dans Access2007). Je pense que "fichier de base de données MS Access .mdb" décrit avec peu de place pour l'ambiguïté :) – onedaywhen

Répondre

1

J'ai utilisé le MySQL Migration Toolkit et il a très bien fonctionné pour les tables, créant même un script réutilisable. C'est gratuit et facile à utiliser.

Cette boîte à outils est maintenant EOL et le MySQL Workbench 5.2 la remplace.

Malheureusement, il se résume à "Un problème a causé le programme à cesser de fonctionner correctement" lorsque je l'essaie avec MS Access sur mon système. À la dernière étape, bien sûr.(16 janvier 2013)

+0

Malheureusement, MySQL Workbench ne prend actuellement pas en charge la migration des bases de données Access. Le précédent MySQL Migration Toolkit l'a peut-être fait, mais MySQL Workbench ne le peut pas (au moins à partir de la version 5.2.47, la version que j'ai testée). La tentative de migration d'un fichier .accdb via une connexion ACE ODBC a échoué lors de la tentative d'ingénierie inverse du schéma et la tentative de migration d'un .mdb via une connexion Jet ODBC a complètement échoué MySQL Workbench. –

+0

@GordThompson Cette question est datée de '09. En '09, la boîte à outils fonctionnait très bien. – Fionnuala

+1

Vrai, mais votre réponse a été éditée le 2013-01-16 (et encore juste maintenant), et une question similaire récente [ici] (http://stackoverflow.com/questions/15608180/exporting-ms-access-databse-to -mysql) a été fermé en tant que doublon et renvoyé à celui-ci. Donc, j'ai pensé qu'un commentaire était approprié quand j'ai trouvé que MySQL Workbench ne pouvait pas faire le travail. –

2

Heureusement, vous n'avez pas besoin de MS Access pour extraire des données d'une base de données Access. Bien qu'il existe des outils comme MDBTools qui lisent les fichiers .mdb sous Linux, je les ai trouvés instables pour des bases de données plus grandes et plus compliquées. Le meilleur moyen est d'utiliser ADO ou ODBC sous Windows pour exporter les données de la base de données .mdb dans un format que vous pouvez importer ailleurs (par exemple, csv). J'ai eu de la chance en utilisant DBI with Ruby, ou en utilisant ADO in a Ruby script.

0

Il y a deux parties au processus

1) convertir la base de données d'accès aux scripts, il y a quelques good options bien que vous pourriez avoir besoin d'accès et potentiellement Sql Server aussi, pour ce faire

2) Choisissez votre base de données cible - MySql semble être un bon choix, lancez-le sur Linux ou Windows et lancez le ddl et les données depuis les scripts.

Vous ne savez pas exactement comment faire cela sans Access, avez-vous une idée de ce à quoi ressemble le schéma? Si vous rencontrez des problèmes, je pourrais vous aider avec l'étape 1, mais je n'ai pas d'installation Linux pour le moment.

1

Soit MyS QL ou Postgres fonctionneront correctement comme un magasin de données de remplacement pour vos données d'accès. Si votre base de données Access contient des formulaires ou des rapports, il n'y a pas de remplacement direct dans Open Source et vous devez conserver le frontal Access et accéder aux données à l'aide des pilotes ODBC ou coder une nouvelle série de formulaires ou de rapports dans Open Source. PHP ou votre langage de script web préféré.

+0

http://www.kexi-project.org/ vise à être un Microsoft Access libre et open-source pour Linux. Comme vous, je doute que les formulaires/rapports fonctionnent exactement la même chose. – bernie

1

J'ai eu le même problème maintenant, et a trouvé ce freeware pour être exactement ce que je avais besoin: http://www.bullzip.com/products/a2m/info.php

Il extrait tout à partir du fichier MDB généré un fichier SQL j'ai importé directement dans mon serveur MySQL .

+0

Lorsque vous dites "tout du fichier MDB", vous voulez dire "les tables et leurs données seulement". Les fichiers MDB peuvent inclure beaucoup plus que des tableaux de données. –

+0

Désolé, vous avez raison. Je veux dire les tableaux et leurs données seulement, ce qui était ce dont j'avais besoin. :) – BackstreetStruts

0

Je ne suis pas d'accord: il n'est pas nécessaire d'utiliser des outils externes ou des intergiciels coûteux. la solution la plus simple, la plus propre, la moins chère, la plus rapide, la plus sûre (Ai-je dit MEILLEURE?) utilise ODBC et intègre complètement.

Questions connexes