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 vertonen meer fouten, haperingen en verstoringen. In dit artikel laat ik je zien hoe je een Access-database converteert naar MySQL in Windows 10 WSL.

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 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. Waarom? Omdat het kan. :)

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.

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 :-)

Leave a Comment

Comments

No comments yet. Why don’t you start the discussion?

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *