Opening Microsoft Access Databases on Linux

In the past few months I’ve been writing about my software archeology experiments, including how to convert old HTML code from 1999 to run in today’s browsers, how to run Macromedia Flash movies with Ruffle, or even how to run Java applets now that they aren’t supported anymore.

TL;DR: it’s possible to open and export Microsoft Access databases in Linux using mdbtools.

One of the perks of a deep immersion in the Microsoft galaxy is lots of Microsoft Access databases in my archives. To be honest, I actually bought a copy of Microsoft Access 1.0 when it came out in 1992.

As I said in a previous article:

The backend consisted of Classic ASP pages written in VBScript (that’s what I used for work, after all) that stored data in a set of Microsoft Access databases (I know, I know, a really poor choice. Anywaaaaaaaay.)

The MDB Tools project is a set of open source programs meant to read Microsoft Access files from anywhere else than Windows. Even better, there’s a GUI built on top called gmdb2, which looks like this:

The application allows you to export both the structure (as a SQL file) and data (in CSV format) of your Microsoft Access tables, allowing you to create a SQLite file instead, for example (a much better option, no matter how you look at it).

MDB Tools is also used by the KEXI Project, the closest thing you’ll find to Microsoft Access on the world of Linux.

Even more interesting, the HACKING file in the mdbtools project documentation explains the structure of MS Access files in detail.

Installing on Fedora 38

The gmdb2 project can be easily installed in Fedora following these steps:

$ sudo dnf install itstool mdbtools-devel gtk3-devel
$ wget
$ tar xf gmdb2-0.9.1.tar.gz
$ cd gmdb2-0.9.1
$ ./configure
$ make
$ sudo make install

After this process, you will have a /usr/local/bin/gmdb2 executable ready to use. Just gmdb2 file.mdb and have fun.

Bonus Track

If you’re using Windows and would like to get rid of your Microsoft Access files, you can use this tool to export Access databases to SQLite in one operation.

(Although, to be honest, I don’t understand why this tool isn’t available for other operating systems as well; after all, it’s written in C++ and uses wxWidgets as a GUI toolkit.)