Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 6/2004.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Access und MySQL

André Minhorst, Duisburg

MySQL ist ein Open Source-SQL-Server, der wegen seiner Geschwindigkeit und seiner guten Sicherheitseigenschaften oft für Internetanwendungen im Einsatz ist. Da sehr viele Internetprovider MySQL in mittleren bis großen Hosting-Paketen als Datenbankserver anbieten, besitzt es eine Sonderstellung unter den freien SQL-Servern. Das ist ein Grund mehr, die Verwendung von Access als Frontend von Datenbanken unter MySQL unter die Lupe zu nehmen - sowohl mit lokalem MySQL als auch auf dem Internetserver.

Einordnung eines ungleichen Paares

Access und MySQL sind grundverschieden. Während sich Access eher für Einzelplatzanwendungen und für Datenbankanwendungen in Mehrbenutzerumgebungen mit begrenzter Datenmenge und Benutzeranzahl eignet, ist MySQL für den Einsatz in Internetanwendungen und anderen Anwendungen in Mehrbenutzerumgebungen vorgesehen. Dieser Vergleich deutet auch den zweiten großen Unterschied an: Access ist ein All-In-One-Paket mit eigener Benutzeroberfläche, während MySQL - für Internetanwendungen genau ausreichend - als reiner Datenbankserver daherkommt.

Kombinieren Sie beide miteinander, erhalten Sie eine Datenbankanwendung mit einem sicheren und performanten Backend und einer je nach Anforderung gestalteten Benutzeroberfläche. Die Verbindung stellen Sie einfach her, indem Sie die Access-Benutzeroberfläche via ODBC mit der MySQL-Datenbank verknüpften. Wie sich später zeigen wird, sind die beiden aber nicht in allen Aspekten wie füreinander geschaffen - der Export eines bestehenden Datenmodells nach MySQL ist unter Umständen mühselig, weil keine Informationen über Indexfelder oder Beziehungen übernommen werden oder die Datentypen nicht kompatibel sind, die lasche Handhabung von Tabellen- und Feldnamen unter Access kann beim Export zu Schwierigkeiten führen, weil MySQL dort wesentlich restriktiver ist und beispielsweise keine Sonderzeichen wie Minus- oder Leerzeichen erlaubt.

Wesentlich interessanter ist aber ohnehin der Anwendungsfall, dass eine MySQL-Datenbank als Datenquelle für eine Internetanwendung oder Ähnliches dient. Aufgrund der gegenüber Windows-Anwendungen wesentlich aufwändiger zu entwickelnden Internet-Anwendungen sind Administrationstools meist Mangelware oder nur rudimentär vorhanden, eventuell notwendige Änderungen werden dann unter Umständen per Kommandozeile durchgeführt. Was liegt da näher, als schnell eine Access-Anwendung mit den gewünschten Tabellen zu verknüpfen und die benötigten Formulare zum Bearbeiten und Berichte zur Ausgabe der Daten zu erstellen? Die gleiche Aufgabe per Web-Interface zu lösen, dürfte ein Vielfaches an Arbeit bedeuten.

Hier stellt sich die Frage, wie Sie eine sichere Verbindung zwischen dem lokalen Access-Frontend und dem beispielsweise auf einem Internetserver befindlichen MySQL-Backend herstellen.

Die Antwort finden Sie gegen Ende dieses Beitrags und vorher erfahren Sie, wie Sie MySQL und MyODBC installieren, wie Sie MySQL zum Laufen bringen, was dabei zu beachten ist und wie Sie eine lokale Verbindung zwischen einer Access- und einer MySQL-Datenbank herstellen. Bleibt das Thema Upsizing: Aufgrund der vielen Fallstricke lässt es sich kaum in diesem Rahmen abhaken, aber wir bringen Sie zumindest auf den richtigen Weg.

Installation der erforderlichen Software

Für den Betrieb von MySQL als Backend für Access ist neben MySQL selbst ein entsprechender ODBC-Treiber erforderlich.

Installation von MySQL

Die Installationsdateien von MySQL finden Sie unter folgender Adresse im Bereich Download: http://www.mysql.org

Hinweis

Die im Rahmen der nachfolgenden Beispiele verwendete Version lautet 4.0.21. (

Der Start der Installation erfolgt über den Aufruf der Datei Setup.exe. Die in den einzelnen Installationsschritten angebotenen Optionen können Sie problemlos übernehmen. Nach der Installation zeigt sich das System äußerlich unverändert, MySQL legt keine Einträge im Startmenü oder auf dem Desktop an. Das ist auch kein Wunder, denn es handelt sich bei MySQL um ein reines Datenbank-Backend, das meist als SQL-Server für Internetanwendungen dient.

Installation von MyODBC

Der ODBC-Treiber für MySQL heißt treffenderweise MyODBC. Sie finden ihn unter der gleichen Internetadresse wie MySQL im Bereich Download unter Connectors. Der Beitrag basiert auf der Version 3.51.9 des ODBC-Treibers für MySQL. Die Setup-Routine kopiert lediglich vier Dateien auf den Zielrechner und registriert eine von ihnen als .dll-Datei.

Erste Schritte mit MySQL

Die Installationsroutine hat alle Dateien in ein Verzeichnis namens c:\mysql installiert (soweit Sie kein anderes Verzeichnis angegeben haben). Im Unterverzeichnis bin befinden sich alle wichtigen ausführbaren Dateien von MySQL, darunter auch ein grafisches Administrationstool - dazu später mehr. Im Rahmen der vorgesehenen Anwendung sollten Sie außerdem wissen, dass das Unterverzeichnis data alle MySQL-Datenbanken enthält.

Für Informationen über MySQL, die über die in diesem Beitrag enthaltenen hinausgehen, bietet sich die Lektüre des im Verzeichnis Docs enthaltenen Benutzerhandbuchs von MySQL an.

MySQL starten

Unter Linux-Anwendern gang und gäbe ist die Verwendung der Kommandozeile für alle möglichen Aufgaben, unter anderem auch für die Administration von MySQL. Als verwöhnter Access-Anwender fiele eine Umstellung vermutlich schwer, aber wie bei vielen anderen Anwendungen bieten Kommandozeile und Konfigurationsdateien eine Menge mehr Kontrolle und Übersicht als die unter Windows teilweise tief verschachtelten Dialoge - ganz davon abgesehen, dass deren Aufbau sich gerne mal mit Veröffentlichung einer neuen Windows- oder Office-Version ändert. Dennoch erfolgen die ersten Schritte mit MySQL mit der Kommandozeile. Dort wechseln Sie zunächst in das bin-Verzeichnis:

cd \mysql\bin

Starten Sie dann MySQL mit der gleichnamigen Anweisung:

mysql

Normalerweise ist MySQL noch nicht gestartet, was in folgender Meldung resultiert:

ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)

MySQL als Systemdienst

Wenn Sie MySQL als Systemdienst installieren, können Sie es wie andere Systemdienste starten, stoppen und festlegen, ob es beim Systemstart automatisch mitgestartet werden soll. Die Installation als Systemdienst erfolgt über folgende Anweisung aus dem bin-Verzeichnis des MySQL-Ordners heraus:

mysqld-nt -install

Abb. 1: MySQL als Systemdienst

Anschließend können Sie den MySQL-Server entweder über den Dienst-Dialog (s. Abb. 1) oder per Kommandozeile starten und stoppen.

NET START mysql

NET STOP mysql

MySQL-Anweisungen

Sobald MySQL läuft, können Sie das Kommandozeilentool mysql in der Eingabeaufforderung starten.

Sie melden sich dann automatisch als Benutzer mit dem Benutzernamen ODBC an und haben dann - im frisch installierten Zustand - lediglich Zugriff auf die Datenbank test. Wenn Sie sich im Kontext eines anderen Benutzers anmelden möchten, verwenden Sie beispielsweise folgenden Aufruf:

mysql -user root

MySQL begrüßt Sie wie in Abb. 2 und bietet seine eigene Eingabeaufforderung mysql> an.

Praxis-Tipp

Mit der Anweisung status erfahren Sie unter anderem, unter welchem Benutzernamen die aktuelle Session läuft. (

Abb. 2: Anmelden an MySQL und Anzeigen der vorhandenen Datenbanken

Als Benutzer root können Sie direkt einmal einen Blick auf die vorhandenen Datenbanken werfen. Die folgende Anweisung bewirkt die Ausgabe einer Liste wie in Abb. 2.

show databases;

Um die Tabellen einer der Datenbanken anzuzeigen, wechseln Sie zunächst zu dieser:

use mysql

Anschließend zeigen Sie mit folgender Anweisung eine Liste der Tabellen dieser Datenbank an (s. Abb. 3):

show tables;

Abb. 3: Anzeige der Tabellen einer Datenbank

Abb. 4: Der Windows-MySQL-Administrator

An dieser Stelle können Sie mit dem Kommandozeilentool MySQL alles mit einer Datenbank machen, was Sie unter Access mit der Benutzeroberfläche erledigen würden: Datenbanken erstellen, Tabellen erstellen und löschen, den Entwurf der Tabellen bearbeiten und mit entsprechenden Auswahl- und Aktionsabfragen Daten ausgeben und bearbeiten.

Die dazu erforderlichen Anweisungen entsprechen weitgehend denen, die Sie auch unter Access verwenden, daher gehen wir an dieser Stelle nicht weiter darauf ein. Zu beachten ist eigentlich nur, dass Sie die Anweisungen in mehreren Zeilen eingeben können und MySQL diese erst beim Auftauchen eines Semikolons abarbeitet.

Nur einige Anweisungen, die entweder gar keine oder nur wenige Parameter erwarten, werden direkt ausgeführt - wie beispielsweise die Anweisung exit, mit der Sie eine Session beenden.

Sicherheit

Sicherheit wird unter MySQL groß geschrieben. Da MySQL im Gegensatz zu Microsoft Access auch hauptsächlich für den Mehrbenutzerbetrieb und für den Einsatz im Internet gedacht ist, ist das nicht weiter verwunderlich.

An dieser Stelle erfahren Sie nun, wie Sie Benutzer auf eine Datenbank zugreifen lassen oder auch nicht; für weitere Informationen verweisen wir auf die Dokumentation von MySQL.

Hinweis

Eine detaillierte Dokumentation von MySQL finden Sie unter http://dev.mysql.com/doc/mys
ql/de/index.html (in einer Zeile). (

Um das Öffnen von Datenbanken unter dem Benutzernamen root und ohne Kennwort zu verhindern, setzen Sie ein solches. Dazu verwenden Sie die Anwendung mysqladmin (ohne Zeilenumbruch).

mysqladmin -u root -h localhost password <Kennwort>

Bei einer Anmeldung unter dem Benutzernamen root fragt MySQL nun das Kennwort ab.

Das Administrations-Tool

Unter dem Dateinamen WinMySQLAdmin.exe finden Sie im Verzeichnis bin das Administrationstool von MySQL. Damit können Sie beispielsweise Datenbanken, Tabellen und Tabellendetails einsehen (s. Abb. 4).

Access und MySQL

Die Verwendung von Access als Frontend einer MySQL-Datenbank setzt das Vorhandensein einer entsprechenden MySQL-Datenbank voraus. Sollte diese Voraussetzung nicht gegeben sein, erfahren Sie im Abschnitt 4.1, wie Sie eine bestehende Access-Datenbank nach MySQL upsizen. Anderenfalls fahren Sie mit Abschnitt 4.2 fort, wo Sie erfahren, wie Sie ein Access-Frontend mit Tabellen einer MySQL-Datenbank verknüpfen.

Upsizing von Access-Datenbanken auf MySQL

Das Upsizing einer Datenbank von Access auf MySQL kann, um direkt auf eventuelle Schwierigkeiten hinzuweisen, alles andere als trivial sein. Unter Upsizing ist in diesem Zusammenhang die Erstellung einer neuen MySQL-Datenbank zu verstehen, der alle Tabellen der für das Upsizing vorgesehenen Datenbank hinzugefügt werden, sodass die Access-Anwendung nicht mehr auf die in der Access-Datenbank gespeicherten, sondern auf die in der neuen MySQL-Datenbank gespeicherten Tabellen zugreift.

Für dieses Vorhaben sind prinzipiell drei Wege denkbar:

  • Alle betroffenen Tabellen werden per Exportieren...-Funktion in die Zieldatenbank exportiert.
  • Die Definition und die Inhalte der Tabellen werden in ein Skript exportiert, das MySQL per SQL-Dump in die gewünschte SQL-Datenbank importiert.
  • Sie verwenden ein Tool, das Ihnen die Arbeit mehr oder weniger abnimmt.
  • Aus Platzgründen können wir leider nicht alle drei Möglichkeiten vorstellen. Die erste der drei scheint aber zunächst am einfachsten zu sein; außerdem bietet sie Gelegenheit, sich ein wenig in den Sprachumfang von SQL unter MySQL einzuarbeiten. Sie beinhaltet allerdings ein wenig Handarbeit. Wenn Sie beispielsweise die Tabellen der Nordwind-Datenbank inklusive Beziehungen, Indizes und Daten exportieren möchten, sind einige Nacharbeiten notwendig.
  • Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

    Sind Sie Abonnent?Jetzt einloggen ...
     

    Kompletten Artikel lesen?

    Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

    E-Mail:

    © 2003-2015 André Minhorst Alle Rechte vorbehalten.