Welcome to the exciting world of MDB Tools! MDB Tools is a set of programs to help you extract data from Microsoft Access files in various settings. See the NEWS file for information about the latest release.
The major pieces of MDB Tools are:
The core library that allows access to MDB files programatically. See mdbtools.h for the complete API.
Builds on libmdb to provide a SQL engine (aka Jet). See mdbsql.h for the complete API.
Provides command line utilities, including:
Command | Description |
---|---|
mdb-ver |
Prints the version (JET 3 or 4) of an mdb file. |
mdb-schema |
Prints DDL for the specified table. |
mdb-export |
Export table to CSV or SQL formats. |
mdb-json |
Export table to JSON format. |
mdb-tables |
A simple dump of table names to be used with shell scripts. |
mdb-count |
A simple count of number of rows in a table, to be used in shell scripts and ETL pipelines. |
mdb-sql |
A simple SQL engine (also used by ODBC and gmdb). |
mdb-queries |
List and print queries stored in the database. |
mdb-hexdump * |
(in src/extras) Simple hex dump utility to look at mdb files. |
mdb-array * |
Export data in an MDB database table to a C array. |
mdb-header * |
Generates a C header to be used in exporting mdb data to a C prog. |
mdb-parsecsv * |
Generates a C program given a CSV file made with mdb-export. |
* Deprecated
See the man page of each program for usage instructions.
The src/util directory also contains a number of debugging tools, intended for developers. They are:
Command | Description |
---|---|
prcat |
Prints the catalog table from an mdb file. |
prkkd |
Dump of information about design view data given the offset to it. |
prtable |
Dump of a table definition. |
prdata |
Dump of the data given a table name. |
prole |
Dump of ole columns given a table name and sargs. |
These tools are not installed on the host system.
An ODBC driver for use with unixODBC or iODBC driver manager. Allows one to use MDB files with PHP for example.
The Gnome MDB File Viewer and debugger. Recently ported to GTK+3 and moved to mdbtools/gmdb2.
Files in libmdb, libmdbsql, and libmdbodbc are licensed under LGPL and the utilities and gui program are under the GPL, see COPYING.LIB and COPYING files respectively.
First, you must have reasonably current installations of:
If you want to build the SQL engine, you'll need bison (version >= 3.0) or byacc, and flex.
If you want to build the ODBC driver, you'll need unixodbc-dev
(version
2.2.10 or above) or iodbc.
If you want to build man pages, you'll need GNU awk.
Latest version is available at https://github.com/mdbtools/mdbtools
apt install mdbtools
brew install mdbtools
port install mdbtools
If you have cloned the Git repository, you will first need to generate the
configure
file (skip this step if you have downloaded a formal release):
$ autoreconf -i -f
Then:
$ ./configure
OR for a complete install (requires bison, flex, and unixODBC):
$ ./configure --with-unixodbc=/usr/local
By default, MDB Tools is linked against the copy of
GLib returned by pkg-config. You can
point to a different GLib installation using the GLIB_CFLAGS
and GLIB_LIBS
enivornment variables. Or, you can disable GLib entirely with the
--disable-glib
flag, in which case MDB Tools will use an internal
implementation of GLib's functions.
configure can be passed any of the following flags to turn on other
capabilities. Note that the options --with-unixodbc
and --with-iodbc
are
mutually exclusive.
--with-unixodbc specifies the location of the unixODBC driver manager and
causes the unixODBC driver to be built.
--with-iodbc specifies the location of the iODBC driver manager and
causes the iODBC driver to be built.
By default, the ODBC driver will be installed as /usr/local/lib/odbc/libmdbodbc.so, with a Unicode-capable driver at /usr/local/lib/odbc/libmdbodbcW.so.
The command configure --help
will give you the list of mdbtools specific options.
$ make
Once MDB Tools has been compiled, libmdb.[so|a] will be in the src/libmdb directory and the utility programs will be in the src/util directory.
You can then install (to /usr/local by default) by running the following as root:
$ make install
Some systems will also need the ld cache to be updated after installation; You can do that running:
$ ldconfig
If you are interested in helping, read the HACKING file for a description of where the code stands and what has been gleened of the file format.
Please send bug reports to the new github repository. https://github.com/mdbtools/mdbtools/issues