Skip to content

ODBC-Zugriff auf eine MySQL-Datenbank

 
Andreas Grupp, Elektronikschule Tettnang

Netzwerk-Konfiguration

Der Zugriff auf ihre Datenbank erfolgt über das TCP/IP-Protokolls des Internet. Ihr Rechner muß demnach mit dem Transportprotokoll TCP/IP ausgerüstet sein.

Verwendete Technik

Der Zugriff kann auf zwei verschieden Arten realisiert werden:

· ODBC (Open Database Connectivity): Dabei handelt es sich um einen Standard für Datenbankzugriffe, der ursprünglich von Microsoft stammt. Im Normalfall kann nämlich eine Datenbank-Applikation (in diesem Beispiel Microsoft Access) nicht auf fremde Datenbank-Formate zugreifen (von einigen Ausnahmen abgesehen).
 

Abb. 1: Verbindungsproblematik Frontend zu SQL-Server

Die ODBC-Schnittstelle ist nun eine Möglichkeit dieses Problem zu lösen. Dazu wird die Datenbank, auf die nicht direkt zugegriffen werden kann, hinter einem ODBC-Treiber "versteckt". Der eingesetzte Treiber ist für das jeweilige Datenbankformat maßgeschneidert und somit in der Lage auf die Datenbank zugreifen zu können. Über den ODBC-Treiber-Manager besteht nun die Möglichkeit auf Betriebssystemebene sogenannte ODBC-Datenquellen zu konfigurieren. Dabei bietet der Manager den Windows-Applikationen eine standardisierte Programmschnittstelle an. Die Applikation braucht dadurch keine speziellen Kenntnisse über die tatsächliche Datenbank. Beim Zugriff auf eine spezielle Datenquelle lädt der ODBC-Manager den passenden Treiber nach. Dieser setzt die über diese Schnittstelle eintreffenden Kommandos in das spezifische Format der verwendeten Datenbank um. Die eigentliche Datenbank-Applikation muß nun nur noch in der Lage sein auf ODBC-Datenquellen zugreifen zu können.

Fazit: Im System muß ein auf die jeweilige Datenbank angepasster ODBC-Treiber installiert sein.

Abb. 2: Verbindung des Frontends zum SQL-Server via ODBC

· Die andere Variante ist ein direkter Zugriff mit Hilfe von MySQL-Frontends. Diese sind jedoch hauptsächlich für den UNIX-Bereich verfügbar. Die Tools für den Windows-Bereich sind momentan noch eher dürftig. Sie können sich jedoch jederzeit im Download- bzw. Contribution-Bereich des Datenbankherstellers T.c.X umsehen, ob zwischenzeitlich komfortablere Tools zur Verfügung stehen.

Installation des ODBC-Treibers unter Windows 95, 98, NT

Da insbesondere der ODBC-Zugriff über eine Microsoft-Windows-Oberfläche relevant sein dürfte, anbei eine Erläuterung der einzelnen Schritte für Windows95, 98 und NT (für Windows 2000 dürften die einzelnen Schritte prinzipiell identisch sein, wurden aber nicht getestet).

Die notwendige ODBC-Software können sie wieder von der www.mysql.com herunterladen (das empfehle ich, da dort meist aktuellere Treiber liegen). Folgen Sie auf den dortigen Seiten den Links zu MyODBC. Beachten Sie aber, daß es für Windows95 und WindowsNT zwei verschiedene Varianten gibt. Besorgen Sie sich die für Ihr Betriebssytem passende Form. Nach dem Auspacken des ZIP-Archivs (und Lesen der README-Datei) starten Sie bitte das Setup-Programm. Über den Startbildschirm des MyODBC-Setups gelangen Sie zur Treiberauswahl.
 


Abb. 3: Start des MyODBC-Setups
 
 


Abb. 4: Auswahl des zu installierenden Treibers

Sie erhalten nun die Möglichkeit den MySQL-ODBC-Treiber zu installieren. Mit der Schaltfläche OK könnten sie einfach loslegen und ausprobieren, ob die Installation funktioniert. Insbesondere wenn sie aber schon einen ODBC-Treiber-Manager installiert haben (z.B. weil sie bei Installation von Microsoft Access alle Komponenten ausgewählt haben), kommt es bei der Installation zu Problemen. Die Installationssoftware meldet, dass sie die MFC30.DLL nicht ersetzen kann. Im Normalfall ist es deshalb immer erforderlich in die "Advanced ..."-Installationseinstellungen zu gehen. Hier wählen Sie dann "Do not install Driver Manager" und starten erst dann die Installation.
 


Abb. 5: Übliche Einstellung in den erweiterten Installations-Optionen

Die Schaltfläche "OK" der "Advanced Installation Options" führt sie zurück zum Screenshot aus Abbildung 4. Dort können Sie nun wiederum über die "OK"-Schaltfläche den eigentlichen Installationsvorgang starten. Nachdem dieser Vorgang abgeschlossen ist, bietet die Installationssoftware sofort die Konfigurationsmöglichkeit für eine ODBC-Datenquelle (Abb. 6).

Abb. 6: Konfiguration einer ODBC-Datenquelle direkt nach der Treiber-Installation

Dies erledigen wir aber ein paar Mausklicks weiter über die System-

steuerung. Das "Data Sources"-Fenster der Abbildung 6 wird deshalb ohne jegliche Aktion über die "Close"-Schaltfläche geschlossen.

Abb. 7: Ende des ODBC-Treiber-Setups

Damit ist die Installation des ODBC-Treibers endgültig abgeschlossen.

Konfiguration einer ODBC-Datenquelle unter Microsoft Windows

Der nächste Schritt besteht in der Konfiguration einer ODBC-Datenquelle. Dies wird auf Systemebene über die Systemsteuerung erreicht. Öffnen Sie die Systemsteuerung Ihres Rechners
 


Abb. 8: Der ODBC-Zugang in der Systemsteuerung in der alten und neuen Version

und starten Sie mit einem Doppelklick auf das "32-Bit-ODBC"-Icon den ODBC-Datenquellen-Administrator.


Abb. 9: Die Oberfläche des ODBC-Datenquellen-Adminstrators

Die Installationsroutine hat Ihnen schon eine Datenquelle installiert ("sample MySQL"), die allerdings auf keine reale Datenbank verweist. Sie können diese Datenquelle aus Ihrem System entfernen. Über die Schaltfläche "Hinzufügen" gelangen Sie zum Dialogfenster "Neue Datenquelle erstellen".

Abb. 10: Auswahl des ODBC-Treibers für eine neue Datenquelle

Hier wählen Sie den MySQL-Treiber aus und betätigen anschließend die Schaltfläche "Fertigstellen ". Sie gelangen dann in ein Dialogfenster zur Konfiguration der Datenquelle.


Abb. 11: Konfigurationsfenster eine MySQL-ODBC-Datenquelle

Hier sind die folgenden Parameter einstellbar:

  • Windows DSN name: Hier können Sie entsprechend Ihren eigenen Wünschen einen Namen für die Datenquelle vergeben. Unter der gewählten Bezeichnung erreichen Sie später im System (z.B. unter Access) diese Datenquelle.
  • Als Server (Datenbank-Server) geben Sie den Namen oder die IP-Nummer Ihres MySQL-Datenbank-Servers an.
  • MySQL Database name: Hier handelt es sich um den realen Namen der Datenbank auf dem MySQL-Server.
  • User: Hierbei handelt es sich um Ihre Userkennung bei der Anmeldung am Datenbankserver. Beachten Sie, daß es sich hierbei um die MySQL-Userkennung handelt. Da auf Windowsrechner im allgemeinen mehrer Personen Zugriff haben, gibt man hier besser erst mal nichts ein (siehe auch nächster Spiegelstrich).
  • Password: Das zur Userkennung paßende Passwort. Geben Sie Ihr Kennwort nie bekannt! Tragen Sie es auch hier nie ein! Sie werden bei Zugriffsversuchen dann vom System nach dem Password gefragt!
  • Port: Kann leer bleiben, da der MySQL-Datenbankserver tatsächlich auf Port 3306 läuft.
  • Die verschiedenen Frontends (z.B. Access) implementieren verschiedene Versionen des ODBC-Standards oder weisen Implementierungsfehler auf. Je nach Frontend können Sie deshalb noch verschieden Optionen zum Verhalten des MySQL-ODBC-Treibers (MyODBC) einstellen. Lesen Sie hierzu nochmals in der README-Datei des MyODBC-Pakets nach. Für Access 7.0 bis Access 2000 ist z.B. nur die Option "Return matching rows", für Access 2.0 die Optionen "Return matching rows" und "Simulate ODBC 1.0" zu setzen.
Verlassen Sie anschließend den Dialog zur Konfiguration der MySQL-Datenbankquelle über die Schaltfläche OK. Die soeben konfiguriert Datenquelle erscheint nun in der Liste der Benutzer-Datenquellen im ODBC-Datenquellen-Administrator. Die Datenbank auf ihrem MySQL-Datenbank-Server steht Ihnen somit als ODBC-Datenquelle in Ihrem System zur Verfügung.

Mit einem ODBC-fähigen Frontend können Sie auf die Datenbank zugreifen und Datensätze lesen, schreiben, verändern, sofern Sie auf dem MySQL-Datenbankserver die entsprechenden Rechte haben. Die diversen Frontends können hier nicht umfassend behandelt werden. Lesen Sie notfalls in der zugehörigen Software-Dokumentation nach wie Sie auf ODBC-Datenquellen zugreifen können. Nachfolgend wird nur für Microsoft-Access der Zugriff exemplarisch dargestellt.

Verknüpfung von Microsoft Access mit einer ODBC-Datenquelle

Sie benötigen für die nachfolgenden Schritte eine funktionierende Netzwerk-Verbindung zu ihrem MySQL-Datenbank-Server (außer Sie betreiben den MySQL-Server unter Windows auf dem gleichen Rechner)!

Erstellen Sie sich unter Access eine neue, leere Datenbank. Anschließend muß eine Verknüpfung zu den Datenbank-Tabellen auf dem MySQL-Datenbank-Server erstellt werden. Wählen Sie dazu in der Menüleiste "Datei"/"Externe Daten"/"Tabellen verknüpfen..." aus.
 


Abb. 12: Verknüpfung externer Datenquellen mit einer Access-Datenbank

Im nun folgenden Auswahldialog wählen Sie als Dateityp "ODBC-Datenbanken()" aus.


Abb. 13: Festlegung von ODBC-Datenquellen während des Verknüpfens ext. Datenquellen

Nach dieser Auswahl erscheint sofort ein Dialog zur Auswahl der entsprechenden Datenquelle. Gehen Sie hier zuerst zur zweiten Registerkarte "Computer-Datenquelle". In der dortigen Liste sollte die von Ihnen konfigurierte ODBC-Datenquelle erscheinen. Wählen Sie diese aus und beenden Sie den Dialog mit Hilfe der Schaltfläche "OK".
 


Abb. 14: Auswahl der für die Verknüpfung zu verwendenden ODBC-Datenquelle

Ihr System meldet Sie nun am MySQL-Datenbankserver an und baut eine Verbindung zur konfigurierten Datenbank auf. Nachdem dies erfolgt ist, erhalten Sie eine Liste der verfügbaren Tabelle(n). Wählen Sie die Tabelle(n) aus, auf die Sie zugreifen möchten, und verlassen Sie auch diesen Dialog mit der Schaltfläche "OK".
 


Abb. 15: Auswahl der zu vernküpfenden Tabellen

Falls in der Tabelle kein Primärschlüssel definiert ist, müssen Sie noch einen derartigen Primärschlüssel auswählen. Im nachfolgenden Beispiel wäre das Datenfeld "lfb_nr" auszuwählen.
 


Abb. 16: Evtl. Festlegung des Primärschlüssels

Nach Verlassen dieses Dialogs haben sie im Access-Datenbank-Fenster die entsprechende Tabelle zur Verfügung. Sie ist mit dem Icon einer ODBC-Datenquelle gekennzeichnet.
 


Abb. 17: Eine externe Tabelle einer ODBC-Datenquelle in Access

Sie haben nun auf die zugehörigen Daten ganz normalen Zugriff wie auf lokale Tabellen auch. Insofern können Abfragen oder Formularfenster erstellt werden oder auch einfach mit Hilfe der Datenblattansicht zugegriffen werden.
 


Abb. 18: Eine MySQL-Tabelle in der Access-Datenblattansicht

Anlegen einer Tabelle auf einem MySQL-Server via ODBC

Die ODBC-Schnittstelle bietet noch weitere Möglichkeiten. Sie können beispielsweise den Tabellenentwurf einer Datenbank mit der komfortablen grafischen Oberfläche von Microsoft Access durchführen. Anschließend besteht die Möglichkeit diese Tabellen über ODBC auf dem MySQL-Server anlegen zu lassen.

Als erstes legen Sie die Tabellen wie gewohnt lokal unter Access an. Die zu exportierende Tabelle wird anschließend im Datenbankfenster ausgewählt und der Exportvorgang über die Menüauswahl "Datei/Exportieren..." gestartet.

Abb. 19: Start eines Tabellenexports auf den MySQL-Server

Sie erhalten nach Anklicken des Menüeintrags die Dateiauswahlbox des Systems.Wählen Sie dort wie in Abbildung 13 den Datentyp "ODBC-Datenbanken ()" aus. Danach verschwindet die Dateiauswahlbox sofort und Sie erhalten die Möglichkeit den für den Export zu verwendenden Tabellennnamen festzulegen.

Falls der Name bereits den Namenskonventionen des verwendenden SQL-Servers (hier MySQL) entspricht, ist eine Änderung nicht nötig. Bestätigen Sie das Fenster dann einfach mit "OK".

Abb. 20: Auswahl des Exportnamens der Tabelle

Unmittelbar nach Betätigung der "OK"-Schaltfläche erscheint wieder das bereits bekannte Auswahlfenster für ODBC-Datenquellen. Wählen Sie hier aus, in welche der angelegten Datenquellen die Tabelle exportiert werden soll, und bestätigen Sie Ihre Auswahl durch "OK".

Abb. 21: Auswahl der für den Export zu verwendenden ODBC-DB

Im Anschluß daran wird die Tabelle auf dem MySQL-Server angelegt und sämtliche Daten exportiert. Läuft der MySQL-Server beispielsweise auf einer Linux-Workstation oder einem Linux-Server, so können Sie mit den dort verfügbaren Datenbankfrontends auf die Daten zugreifen.


Abb. 22: Zugriff auf MySQL-Datenbank mit KMySql unter Linux

Leider werden beim ODBC-Export nicht immer alle Einstellungen der lokalen Tabellen mitexportiert. Insbesondere das Anlegen des Primärschlüssels wird zumindest beim Export auf einen MySQL-Server nicht durchgeführt. Hier ist dann entsprechende Nacharbeit auf dem MySQL-Datenbankserver erforderlich.

Eventuell notwendige Service-Packs und Updates zu Access2000

Access2000 benötigt zur Zusammenarbeit mit SQL-Servern diverse Service-Packs bzw. Updates. Es gibt nämlich insbesondere beim Exportieren von Tabellen via ODBC ein Problem mit dem erzeugten CREATE TABLE Befehl, da leider die Namen der Datenfelder vergessen wurden (siehe hierzu Support-Beitrag von Microsoft. Um das Problem zu lösen installieren Sie zuerst die MDAC's Version 2.6 (beachten Sie aber insbesondere bei der Verwendung von geclusterten Server zuerst die Hinweise auf dem Microsoft-Server). Anschließend installieren Sie den Service-Pack 5 der Database Jet Engine in der richtigen Version (abhängig vom Betriebssystem).