Bij Vevida hebben wij Access-databases deprecated verklaard. Dat wil zeggen, je kunt dit databasetype nog gebruiken, maar het gebruik ervan raden wij sterk af. Dat doen wij al jaren, maar nu nog meer. Op Windows Server 2019 Core zijn de verschillende OLEDB- en ODBC-drivers instabieler gebleken: websites met een Access-database tonen veel meer fouten en haperingen.

De afgelopen dagen heb ik twee uitgebreide FAQ-artikelen geschreven, die in totaal vier manieren beschrijven om een Access-database te converteren naar Microsoft SQL Server (3 stuks) en Access naar MySQL (1 artikel).

Eén methode om een Access-database om te zetten naar MySQL die ik daar niet heb beschreven wil ik je niet onthouden, en dat is door middel van Windows 10 WSL of in Linux Bash: Semi-automatisch Access exporteren naar MySQL met mdbtools.

Benodigheden om in Windows 10 WSL een Access-database naar MySQL om te zetten

Of je nu een pure Linux, of Windows 10 Windows Subsystem for Linux (WSL) gebruikt maakt voor de scope van dit artikel niet uit. Je hebt het volgende package nodig (uitgaande van Ubuntu op Windows 10 WSL):

Package: mdbtools
Version: 0.7.1-6
Priority: optional
Section: universe/utils
Origin: Ubuntu
Maintainer: Ubuntu Developers ubuntu-devel-discuss@lists.ubuntu.com
Original-Maintainer: Jean-Michel Vourgère nirgal@debian.org
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 174 kB
Depends: libc6 (>= 2.4), libglib2.0-0 (>= 2.12.0), libmdb2 (>= 0.7~rc1), libmdbsql2 (>= 0.5.99.0.6pre1.0.20051109), libreadline7 (>= 6.0)
Suggests: bash-completion, mdbtools-doc
Homepage: https://github.com/brianb/mdbtools
Download-Size: 39.5 kB
APT-Manual-Installed: yes
APT-Sources: http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
Description: JET / MS Access database (MDB) tools
 These are various tools for manipulating JET / MS Access database (MDB) files:
  * utils	- provides command line utilities to list tables, export schema, and data, show file versions, and other useful stuff.
  * mdb-sql	- a command line SQL tool that allows one to type SQL queries and get results.

Hierna kun je mdb-tables gebruiken voor het dumpen van alle tabelnamen in jouw Access-database. De opdrachten mdb-schema en mdb-export gebruik je om deze tabellen te exporteren naar een .sql-bestand met MySQL indeling.

Ook interessant voor jou:  ODBC en OLE DB connectiestrings voor SQL en MySQL databases

Bash-script om een Access-database te exporteren naar MySQL

Op StackOverflow vind je een kort Bash-shellscript dat dit voor je automatiseert:

#!/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

Je kunt dit script gebruiken om een Access-database op te slaan in een .sql-bestand, om later zelf te importeren in MySQL. Of je kunt het rechtstreeks in MySQL importeren door het commando naar mysql te pipen:

sh ./save_to_mysql.sh dev/database_turorials/test.accdb | mysql -h mysql.example.nl -u examplenl2 -p --database=examplenl2
sh ./save_to_mysql.sh dev/database_turorials/test.mdb > testmdb.sql

Doe er je voordeel mee 🙂


“Want to say thanks?”

Heeft dit artikel je geholpen met het oplossen van een probleem? Vond je deze post interessant? Waarom doneer je dan geen kopje koffie? 🙂

Een kleine donatie van slechts €5 helpt mij enorm in de ontwikkeling en onderzoek van posts, en hosting van dit blog.

Koop een kop koffie

Bedankt voor je support.