{"id":55000240,"date":"2004-12-01T00:00:00","date_gmt":"2020-05-06T15:17:52","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=240"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Access_und_MySQL","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Access_und_MySQL\/","title":{"rendered":"Access und MySQL"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg05.met.vgwort.de\/na\/26db64198606421688da07d4378eae59\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Andr&eacute; Minhorst, Duisburg<\/b><\/p>\n<p><b>MySQL ist ein Open Source-SQL-Server, der wegen seiner Geschwindigkeit und seiner guten Sicherheitseigenschaften oft f&uuml;r Internetanwendungen im Einsatz ist. Da sehr viele Internetprovider MySQL in mittleren bis gro&szlig;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 &#8211; sowohl mit lokalem MySQL als auch auf dem Internetserver.<\/b><\/p>\n<p>Access und MySQL sind grundverschieden. W&auml;hrend sich Access eher f&uuml;r Einzelplatzanwendungen und f&uuml;r Datenbankanwendungen in Mehrbenutzerumgebungen mit begrenzter Datenmenge und Benutzeranzahl eignet, ist MySQL f&uuml;r den Einsatz in Internetanwendungen und anderen Anwendungen in Mehrbenutzerumgebungen vorgesehen. Dieser Vergleich deutet auch den zweiten gro&szlig;en Unterschied an: Access ist ein All-In-One-Paket mit eigener Benutzeroberfl&auml;che, w&auml;hrend MySQL &#8211; f&uuml;r Internetanwendungen genau ausreichend &#8211; als reiner Datenbankserver daherkommt.<\/p>\n<p>Kombinieren Sie beide miteinander, erhalten Sie eine Datenbankanwendung mit einem sicheren und performanten Backend und einer je nach Anforderung gestalteten Benutzeroberfl&auml;che. Die Verbindung stellen Sie einfach her, indem Sie die Access-Benutzeroberfl&auml;che via ODBC mit der MySQL-Datenbank verkn&uuml;pften. Wie sich sp&auml;ter zeigen wird, sind die beiden aber nicht in allen Aspekten wie f&uuml;reinander geschaffen &#8211; der Export eines bestehenden Datenmodells nach MySQL ist unter Umst&auml;nden m&uuml;hselig, weil keine Informationen &uuml;ber Indexfelder oder Beziehungen &uuml;bernommen werden oder die Datentypen nicht kompatibel sind, die lasche Handhabung von Tabellen- und Feldnamen unter Access kann beim Export zu Schwierigkeiten f&uuml;hren, weil MySQL dort wesentlich restriktiver ist und beispielsweise keine Sonderzeichen wie Minus- oder Leerzeichen erlaubt.<\/p>\n<p>Wesentlich interessanter ist aber ohnehin der Anwendungsfall, dass eine MySQL-Datenbank als Datenquelle f&uuml;r eine Internetanwendung oder &auml;hnliches dient. Aufgrund der gegen&uuml;ber Windows-Anwendungen wesentlich aufw&auml;ndiger zu entwickelnden Internet-Anwendungen sind Administrationstools meist Mangelware oder nur rudiment&auml;r vorhanden, eventuell notwendige &auml;nderungen werden dann unter Umst&auml;nden per Kommandozeile durchgef&uuml;hrt. Was liegt da n&auml;her, als schnell eine Access-Anwendung mit den gew&uuml;nschten Tabellen zu verkn&uuml;pfen und die ben&ouml;tigten Formulare zum Bearbeiten und Berichte zur Ausgabe der Daten zu erstellen Die gleiche Aufgabe per Web-Interface zu l&ouml;sen, d&uuml;rfte ein Vielfaches an Arbeit bedeuten.<\/p>\n<p>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.<\/p>\n<p>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&auml;sst es sich kaum in diesem Rahmen abhaken, aber wir bringen Sie zumindest auf den richtigen Weg.<\/p>\n<p>F&uuml;r den Betrieb von MySQL als Backend f&uuml;r Access ist neben MySQL selbst ein entsprechender ODBC-Treiber erforderlich.<\/p>\n<h2>Installation von MySQL<\/h2>\n<p>Die Installationsdateien von MySQL finden Sie unter folgender Adresse im Bereich Download: http:\/\/www.mysql.org<\/p>\n<h3>Hinweis<\/h3>\n<p>Die im Rahmen der nachfolgenden Beispiele verwendete Version lautet 4.0.21. <\/p>\n<p>Der Start der Installation erfolgt &uuml;ber den Aufruf der Datei Setup.exe. Die in den einzelnen Installationsschritten angebotenen Optionen k&ouml;nnen Sie problemlos &uuml;bernehmen. Nach der Installation zeigt sich das System &auml;u&szlig;erlich unver&auml;ndert, MySQL legt keine Eintr&auml;ge im Startmen&uuml; 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&uuml;r Internetanwendungen dient.<\/p>\n<h2>Installation von MyODBC<\/h2>\n<p>Der ODBC-Treiber f&uuml;r MySQL hei&szlig;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&uuml;r MySQL. Die Setup-Routine kopiert lediglich vier Dateien auf den Zielrechner und registriert eine von ihnen als .dll-Datei.<\/p>\n<p>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&uuml;hrbaren Dateien von MySQL, darunter auch ein grafisches Administrationstool &#8211; dazu sp&auml;ter mehr. Im Rahmen der vorgesehenen Anwendung sollten Sie au&szlig;erdem wissen, dass das Unterverzeichnis data alle MySQL-Datenbanken enth&auml;lt.<\/p>\n<p>F&uuml;r Informationen &uuml;ber MySQL, die &uuml;ber die in diesem Beitrag enthaltenen hinausgehen, bietet sich die Lekt&uuml;re des im Verzeichnis Docs enthaltenen Benutzerhandbuchs von MySQL an.<\/p>\n<h2>MySQL starten<\/h2>\n<p>Unter Linux-Anwendern gang und g&auml;be ist die Verwendung der Kommandozeile f&uuml;r alle m&ouml;glichen Aufgaben, unter anderem auch f&uuml;r die Administration von MySQL. Als verw&ouml;hnter Access-Anwender fiele eine Umstellung vermutlich schwer, aber wie bei vielen anderen Anwendungen bieten Kommandozeile und Konfigurationsdateien eine Menge mehr Kontrolle und &uuml;bersicht als die unter Windows teilweise tief verschachtelten Dialoge &#8211; ganz davon abgesehen, dass deren Aufbau sich gerne mal mit Ver&ouml;ffentlichung einer neuen Windows- oder Office-Version &auml;ndert. Dennoch erfolgen die ersten Schritte mit MySQL mit der Kommandozeile. Dort wechseln Sie zun&auml;chst in das bin-Verzeichnis:<\/p>\n<pre>cd \\mysql\\bin<\/pre>\n<p>Starten Sie dann MySQL mit der gleichnamigen Anweisung:<\/p>\n<pre>mysql<\/pre>\n<p>Normalerweise ist MySQL noch nicht gestartet, was in folgender Meldung resultiert:<\/p>\n<pre>ERROR 2003: Can''t connect to MySQL server on ''localhost'' (10061)<\/pre>\n<h3>MySQL als Systemdienst<\/h3>\n<p>Wenn Sie MySQL als Systemdienst installieren, k&ouml;nnen Sie es wie andere Systemdienste starten, stoppen und festlegen, ob es beim Systemstart automatisch mitgestartet werden soll. Die Installation als Systemdienst erfolgt &uuml;ber folgende Anweisung aus dem bin-Verzeichnis des MySQL-Ordners heraus:<\/p>\n<pre>mysqld-nt -install<\/pre>\n<p><IMG height=\"468\" src=\"..\/fileadmin\/_temp_\/{71DA3F6D-5758-4CC8-945F-8FE10234EFA5}\/pic001.png\" width=\"410\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  MySQL als Systemdienst<\/span><\/b><\/p>\n<p>Anschlie&szlig;end k&ouml;nnen Sie den MySQL-Server entweder &uuml;ber den Dienst-Dialog (siehe Bild 1) oder per Kommandozeile starten und stoppen.<\/p>\n<pre>NET START mysql\r\nNET STOP mysql<\/pre>\n<h2>MySQL-Anweisungen<\/h2>\n<p>Sobald MySQL l&auml;uft, k&ouml;nnen Sie das Kommandozeilentool mysql in der Eingabeaufforderung starten.<\/p>\n<p>Sie melden sich dann automatisch als Benutzer mit dem Benutzernamen ODBC an und haben dann &#8211; im frisch installierten Zustand &#8211; lediglich Zugriff auf die Datenbank test. Wenn Sie sich im Kontext eines anderen Benutzers anmelden m&ouml;chten, verwenden Sie beispielsweise folgenden Aufruf:<\/p>\n<pre>mysql -user root<\/pre>\n<p>MySQL begr&uuml;&szlig;t Sie wie in Bild 2 und bietet seine eigene Eingabeaufforderung mysql&gt; an.<\/p>\n<h3>Praxis-Tipp<\/h3>\n<p>Mit der Anweisung status erfahren Sie unter anderem, unter welchem Benutzernamen die aktuelle Session l&auml;uft. <\/p>\n<p><IMG height=\"247\" src=\"..\/fileadmin\/_temp_\/{71DA3F6D-5758-4CC8-945F-8FE10234EFA5}\/pic002.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Anmelden an MySQL und Anzeigen der vorhandenen Datenbanken<\/span><\/b><\/p>\n<p>Als Benutzer root k&ouml;nnen Sie direkt einmal einen Blick auf die vorhandenen Datenbanken werfen. Die folgende Anweisung bewirkt die Ausgabe einer Liste wie in Bild 2.<\/p>\n<pre>show databases;<\/pre>\n<p>Um die Tabellen einer der Datenbanken anzuzeigen, wechseln Sie zun&auml;chst zu dieser:<\/p>\n<pre>use mysql<\/pre>\n<p>Anschlie&szlig;end zeigen Sie mit folgender Anweisung eine Liste der Tabellen dieser Datenbank an (siehe Bild 3):<\/p>\n<pre>show tables;<\/pre>\n<p><IMG height=\"271\" src=\"..\/fileadmin\/_temp_\/{71DA3F6D-5758-4CC8-945F-8FE10234EFA5}\/pic003.png\" width=\"349\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Anzeige der Tabellen einer Datenbank<\/span><\/b><\/p>\n<p><IMG height=\"325\" src=\"..\/fileadmin\/_temp_\/{71DA3F6D-5758-4CC8-945F-8FE10234EFA5}\/pic004.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4:  Der Windows-MySQL-Administrator<\/span><\/b><\/p>\n<p>An dieser Stelle k&ouml;nnen Sie mit dem Kommandozeilentool MySQL alles mit einer Datenbank machen, was Sie unter Access mit der Benutzeroberfl&auml;che erledigen w&uuml;rden: Datenbanken erstellen, Tabellen erstellen und l&ouml;schen, den Entwurf der Tabellen bearbeiten und mit entsprechenden Auswahl- und Aktionsabfragen Daten ausgeben und bearbeiten.<\/p>\n<p>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&ouml;nnen und MySQL diese erst beim Auftauchen eines Semikolons abarbeitet.<\/p>\n<p>Nur einige Anweisungen, die entweder gar keine oder nur wenige Parameter erwarten, werden direkt ausgef&uuml;hrt &#8211; wie beispielsweise die Anweisung exit, mit der Sie eine Session beenden.<\/p>\n<h2>Sicherheit<\/h2>\n<p>Sicherheit wird unter MySQL gro&szlig; geschrieben. Da MySQL im Gegensatz zu Microsoft Access auch haupts&auml;chlich f&uuml;r den Mehrbenutzerbetrieb und f&uuml;r den Einsatz im Internet gedacht ist, ist das nicht weiter verwunderlich.<\/p>\n<p>An dieser Stelle erfahren Sie nun, wie Sie Benutzer auf eine Datenbank zugreifen lassen oder auch nicht; f&uuml;r weitere Informationen verweisen wir auf die Dokumentation von MySQL.<\/p>\n<h3>Hinweis<\/h3>\n<p>Eine detaillierte Dokumentation von MySQL finden Sie unter http:\/\/dev.mysql.com\/doc\/mysql\/de\/index.html (in einer Zeile). <\/p>\n<p>Um das &ouml;ffnen von Datenbanken unter dem Benutzernamen root und ohne Kennwort zu verhindern, setzen Sie ein solches. Dazu verwenden Sie die Anwendung mysqladmin (ohne Zeilenumbruch).<\/p>\n<pre>mysqladmin -u root -h localhost password &lt;Kennwort&gt;<\/pre>\n<p>Bei einer Anmeldung unter dem Benutzernamen root fragt MySQL nun das Kennwort ab.<\/p>\n<h2>Das Administrations-Tool<\/h2>\n<p>Unter dem Dateinamen WinMySQLAdmin.exe finden Sie im Verzeichnis bin das Administrationstool von MySQL. Damit k&ouml;nnen Sie beispielsweise Datenbanken, Tabellen und Tabellendetails einsehen (siehe Bild 4).<\/p>\n<p>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&uuml;pfen.<\/p>\n<h2>Upsizing von Access-Datenbanken auf MySQL<\/h2>\n<p>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&uuml;r das Upsizing vorgesehenen Datenbank hinzugef&uuml;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.<\/p>\n<p>F&uuml;r dieses Vorhaben sind prinzipiell drei Wege denkbar:<\/p>\n<li>Alle betroffenen Tabellen werden per Exportieren&#8230;-Funktion in die Zieldatenbank exportiert.<\/li>\n<li>Die Definition und die Inhalte der Tabellen werden in ein Skript exportiert, das MySQL per SQL-Dump in die gew&uuml;nschte SQL-Datenbank importiert.<\/li>\n<li>Sie verwenden ein Tool, das Ihnen die Arbeit mehr oder weniger abnimmt.<\/li>\n<li>Aus Platzgr&uuml;nden k&ouml;nnen wir leider nicht alle drei M&ouml;glichkeiten vorstellen. Die erste der drei scheint aber zun&auml;chst am einfachsten zu sein; au&szlig;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&ouml;chten, sind einige Nacharbeiten notwendig.<\/li>\n<h3>Export von Tabellen nach MySQL<\/h3>\n<li>F&uuml;r diesen Ansatz erstellen Sie zun&auml;chst eine neue Datenbank in MySQL. Dazu gehen Sie folgenderma&szlig;en vor:<\/li>\n<li>Starten Sie die Eingabeaufforderung und wechseln Sie in das Verzeichnis c:\\mysql\\bin (soweit Sie MySQL nicht in einem anderen Verzeichnis installiert haben).<\/li>\n<li>Melden Sie sich mit der Anweisung mysql -u root -p&lt;Kennwort&gt; mysql beim MySQL-Server an (Achtung: kein Leerzeichen zwischen -p und &lt;Kennwort&gt;) und geben Sie das Kennwort an, soweit erforderlich.<\/li>\n<li>Erstellen Sie mit der Anweisung create database Nordwind eine neue Datenbank namens Nordwind. (<\/li>\n<li>Lassen Sie die Eingabeaufforderung ge&ouml;ffnet, da Sie diese sp&auml;ter noch ben&ouml;tigen.<\/li>\n<li>Nun &ouml;ffnen Sie die Nordwind-Datenbank und exportieren eine Tabelle. Dazu verwenden Sie den Eintrag Exportieren&#8230; des Kontextmen&uuml;s der zu exportierenden Tabelle im Datenbankfenster. Anschlie&szlig;end gehen Sie wie folgt vor:<\/li>\n<li>W&auml;hlen Sie im Exportieren&#8230;-Dialog als Datentyp den Eintrag ODBC-Datenbank aus.<\/li>\n<li>Geben Sie den Namen der Zieldatenbank an.<\/li>\n<li>W&auml;hlen Sie die Datenquelle aus. (<\/li>\n<li>Fertig! Wenn Sie nun mit der Anweisung use Nordwind die neue Datenbank namens Nordwind aktivieren, k&ouml;nnen Sie dort die folgende Anweisung eingeben, um die vorhandenen Tabellen anzuzeigen:<\/li>\n<pre>show tables;<\/pre>\n<li>Die Tabelle ist, wie die Ausgabe zeigt, erfolgreich exportiert worden. Nun schauen Sie sich die Struktur der Tabelle an und verwenden dazu die folgende Anweisung:<\/li>\n<pre>show columns from artikel;<\/pre>\n<li>Das Ergebnis finden Sie in Bild 5. Es ist schnell zu erkennen, dass beispielsweise keine Informationen &uuml;ber den Prim&auml;rschl&uuml;ssel mitexportiert wurden.<\/li>\n<p><!--30percent--><\/p>\n<p>Das l&auml;sst sich auch nicht so einfach nachholen, da MySQL im Vergleich zu Access keine Sonderzeichen &#8211; und auch keine Umlaute &#8211; in Feldnamen akzeptiert.<\/p>\n<p><IMG height=\"254\" src=\"..\/fileadmin\/_temp_\/{71DA3F6D-5758-4CC8-945F-8FE10234EFA5}\/pic005.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5:  Aufbau einer von Access nach MySQL exportierten Tabelle<\/span><\/b><\/p>\n<p>Hier beginnen die Probleme des Exports, denn eine &auml;nderung des Prim&auml;rindexfeldes w&auml;re zwar realisierbar und auch die Fremdschl&uuml;sselfelder der mit dieser Tabelle verkn&uuml;pften Felder m&uuml;ssten ohnehin noch angepasst werden, aber letzten Endes m&uuml;ssen Sie auch alle in Formularen, Berichten und Modulen der Access-Anwendung vorhandenen Verweise noch anpassen.<\/p>\n<p>Eine M&ouml;glichkeit w&auml;re, die Tabellen unter allgemein &uuml;blichen Namen wie tblArtikel statt Artikel zu exportieren, die kritischen Feldnamen beim Feintuning durch zul&auml;ssige Namen zu ersetzen, eine Verkn&uuml;pfung zu den Tabellen herzustellen und eine Abfrage mit dem eigentlichen Tabellennamen (also etwa Artikel) zu erstellen, die alle Felder der verkn&uuml;pften Tabelle (also tblArtikel) enth&auml;lt. Da Access Tabellen und Abfragen gleichberechtigt behandelt, funktioniert diese Vorgehensweise.<\/p>\n<p>Diese Probleme einmal au&szlig;en vor gelassen, bietet MySQL alle sprachlichen M&ouml;glichkeiten, die entsprechenden Felder in Prim&auml;rindexfelder umzuwandeln.<\/p>\n<h3>Hinweis<\/h3>\n<p>Wenn Sie eine bestehende Datenbank nach MySQL exportieren und die Tabellen dieser Datenbank inklusive Prim&auml;rschl&uuml;sseln, Indizes, Fremdschl&uuml;sselfeldern und so weiter so anpassen wollen, dass Sie die Access-Anwendung so mit dem neuen, in MySQL vorhandenen Backend verkn&uuml;pfen k&ouml;nnen, ist eine Menge Feintuning erforderlich. Eine komplette Beschreibung dieser Schritte w&auml;re zu umfangreich f&uuml;r diesen Beitrag, sodass wir Sie auf die deutsche Dokumentation der entsprechenden Anweisungen unter folgendem Link verweisen m&ouml;chten: http:\/\/dev.mysql.com\/doc\/mysql\/de\/Reference.html <\/p>\n<h2>Verwenden von MySQL-Datenbanken mit Access<\/h2>\n<p>Die Erstellung einer Datenbank unter Access und der anschlie&szlig;ende Export nach MySQL zeugt in den meisten F&auml;llen davon, dass dies nicht geplant war. Der Weg, zun&auml;chst eine MySQL-Datenbank etwa f&uuml;r eine Internetanwendung zu erstellen und anschlie&szlig;end Access als komfortables Frontend zu verwenden, ist wesentlich sinnvoller.<\/p>\n<p>Aber auch hierbei sind einige Punkte zu beachten:<\/p>\n<li>Legen Sie f&uuml;r jede Tabelle ein Prim&auml;rschl&uuml;sselfeld fest, da sonst das Anlegen von Datens&auml;tzen in einer verkn&uuml;pften Tabelle &uuml;ber Access nicht m&ouml;glich ist.<\/li>\n<li>Verwenden Sie auf keinen Fall BIGINT-Felder, da diese 64Bit enthalten, die Access nicht komplett auswerten kann.<\/li>\n<p>Die Herstellung einer Verbindung zwischen Access und einer MySQL-Datenbank erfordert eine ODBC-Verbindung, die Sie mit MyODBC realisieren. Die nachfolgenden Beispiele gehen davon aus, dass Sie den MySQL-Server auf dem lokalen oder einem per Netzwerk verf&uuml;gbaren Rechner installiert und zum Laufen gebracht haben und dass dort die zu verkn&uuml;pfende Datenbank bereits vorhanden ist.<\/p>\n<p>Mit den folgenden Schritten erstellen Sie eine Verkn&uuml;pfung zu einer Tabelle einer MySQL-Datenbank:<\/p>\n<li>W&auml;hlen Sie den Men&uuml;eintrag Datei\/Externe Daten\/Tabellen verkn&uuml;pfen.<\/li>\n<li>Stellen Sie im Dialog Verkn&uuml;pfen den Datentyp auf ODBC-Datenbanken () ein.<\/li>\n<li>Im nun erscheinenden Dialog Datenquelle ausw&auml;hlen wechseln Sie zum Registerblatt Computerdatenquelle und bet&auml;tigen die Schaltfl&auml;che Neu (siehe Bild 6).<\/li>\n<li>Im Assistenten Neue Datenquelle erstellen behalten Sie im ersten Schritt die Option Benutzerdatenquelle (nur f&uuml;r diesen Computer) bei.<\/li>\n<li>W&auml;hlen Sie als Treiber den MySQL ODBC 3.51 Driver aus (Installation siehe oben).<\/li>\n<p><IMG height=\"395\" src=\"..\/fileadmin\/_temp_\/{71DA3F6D-5758-4CC8-945F-8FE10234EFA5}\/pic006.png\" width=\"449\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6:  Erstellen einer neuen Datenquelle<\/span><\/b><\/p>\n<p><IMG height=\"366\" src=\"..\/fileadmin\/_temp_\/{71DA3F6D-5758-4CC8-945F-8FE10234EFA5}\/pic007.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 7:  Eingabe der Verbindungsparameter<\/span><\/b><\/p>\n<li>Klicken Sie im n&auml;chsten Schritt auf Fertigstellen.<\/li>\n<li>Geben Sie in der DSN-Konfiguration die Informationen etwa wie in Bild 7 ein. Zeigen Sie &uuml;ber die Schaltfl&auml;che Options &gt;&gt; die erweiterten Optionen an und &uuml;berpr&uuml;fen Sie, ob die Option Return Matching Rows aktiviert ist.<\/li>\n<li>Testen Sie die Verbindung und schlie&szlig;en Sie den Dialog mit der Schaltfl&auml;che OK.<\/li>\n<li>Der neue Eintrag erscheint nun im Dialog Datenquelle ausw&auml;hlen. W&auml;hlen Sie ihn aus und klicken Sie auf OK.<\/li>\n<li>W&auml;hlen Sie im Dialog Tabellen verkn&uuml;pfen die zu verkn&uuml;pfenden Tabellen aus. (<\/li>\n<p>Die verkn&uuml;pften Tabellen erscheinen nun im Datenbankfenster. Sie k&ouml;nnen &#8211; sofern ein Prim&auml;rschl&uuml;ssel vorhanden ist &#8211; auf diese Tabellen wie auf Access-Tabellen zugreifen.<\/p>\n<h3>Aktualisieren von Tabellen<\/h3>\n<p>Wenn Sie auf dem MySQL-Server &auml;nderungen an der Struktur der verkn&uuml;pften Tabellen vornehmen &#8211; etwa durch Hinzuf&uuml;gen eines Feldes &#8211; werden diese nicht automatisch in der verkn&uuml;pften Instanz dieser Tabelle angezeigt. Um die Verkn&uuml;pfung zu aktualisieren, verwenden Sie den daf&uuml;r vorgesehenen Assistenten, den Sie &uuml;ber den Men&uuml;eintrag Extras ( Datenbank-Dienstprogramme ( Tabellenverkn&uuml;pfungs-Manager &ouml;ffnen. W&auml;hlen Sie dort die zu aktualisierenden Verkn&uuml;pfungen aus und klicken Sie auf OK (siehe Bild 8).<\/p>\n<p>Die Erstellung von Webfrontends ist immer noch wesentlich m&uuml;hevoller als die Erstellung einer entsprechenden Windows-Anwendung. Dadurch sind die Funktionen zur Bearbeitung der Daten meist auf die Benutzerschnittstelle beschr&auml;nkt; f&uuml;r die Administration der Datenbank verwendet man in der Regel ein fertiges Administrationsfrontend.<\/p>\n<p><IMG height=\"235\" src=\"..\/fileadmin\/_temp_\/{71DA3F6D-5758-4CC8-945F-8FE10234EFA5}\/pic008.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 8:  Aktualisieren von verkn&uuml;pften Tabellen<\/span><\/b><\/p>\n<p>F&uuml;r ausgefallenere Funktionen bietet es sich an, eine Windows-basierte Anwendung zu erstellen, die &uuml;ber eine entsprechende ODBC-Schnittstelle auf die Datenbank auf dem Internetserver zugreift.<\/p>\n<p>Nat&uuml;rlich darf man hier den sicherheitstechnischen Aspekt nicht aus den Augen verlieren. Nachfolgend lernen Sie hier eine M&ouml;glichkeit kennen, per Secure Shell (SSH) &uuml;ber einen Tunnel vom Arbeitsplatz auf die Datenbank des Internetservers zuzugreifen.<\/p>\n<h3>Hinweis<\/h3>\n<p>Die nachfolgende L&ouml;sung setzt voraus, dass auf dem Internetserver ein SSH-Server wie beispielsweise OpenSSH installiert ist und l&auml;uft und dass Sie &uuml;ber einen Benutzeraccount f&uuml;r den Zielrechner verf&uuml;gen. <\/p>\n<h2>SSH f&uuml;r die sichere Verbindung<\/h2>\n<p>Die verwendete Technik ist recht simpel: Mit PuTTY, einer Open Source-Software, und dem verwandten Programm Plink stellen Sie einen SSH-Tunnel zwischen dem Arbeitsplatzrechner und dem Internetserver her.<\/p>\n<p>Dieser Tunnel verbindet die beiden Rechner &uuml;ber den Port 3306 &#8211; das bedeutet, dass jede Anfrage an Port 3306 des Arbeitsplatzrechners an Port 3306 des Internetservers weitergeleitet wird.<\/p>\n<h3>Hinweis<\/h3>\n<p>Die beiden Anwendungen PuTTY und Plink finden Sie im Internet unter anderem unter der folgenden Adresse: http:\/\/www.chiark.greenend.org.uk\/~sgtatham\/putty\/ <\/p>\n<p>Die beiden Tools k&ouml;nnen Sie direkt starten (PuTTY) beziehungsweise &uuml;ber die Kommandozeile bedienen (Plink). Es ist also keine Installation notwendig. Sie sollten allerdings Plink in ein Verzeichnis legen, das in der Path-Umgebungsvariablen enthalten ist oder einen entsprechenden Eintrag hinzuf&uuml;gen.<\/p>\n<h2>Erstellen eines Profils mit PuTTY<\/h2>\n<p>PuTTY ist eigentlich ein Telnet- oder SSH-Client f&uuml;r den kommandozeilengesteuerten Zugriff auf andere Computer &uuml;ber das Netzwerk.<\/p>\n<p>Wir werden PuTTY hier ein wenig zweckentfremden und damit lediglich ein Profil anlegen, das Sie mit dem Kommandozeilentool Plink f&uuml;r die Portweiterleitung auf den Internetserver verwenden.<\/p>\n<p>Zum Anlegen des Profils gehen Sie folgenderma&szlig;en vor:<\/p>\n<li>Starten Sie PuTTY.<\/li>\n<li>Tragen Sie unter Host Name die IP-Adresse oder die Internetadresse des Internetservers und unter Saved Sessions einen geeigneten Namen f&uuml;r die Session &#8211; etwa ODBCTunnel &#8211; ein (siehe Bild 9).<\/li>\n<li>Wechseln Sie in den Bereich Connection\/SSH\/Tunnels und f&uuml;gen Sie unter Port Forwarding die entsprechenden Daten ein &#8211; mit der gleichen IP wie im vorherigen Schritt (siehe Bild 10).<\/li>\n<li>Wechseln Sie zur&uuml;ck in den Bereich Session und speichern Sie die Session durch einen Klick auf die Schaltfl&auml;che Save. (<\/li>\n<p><IMG height=\"442\" src=\"..\/fileadmin\/_temp_\/{71DA3F6D-5758-4CC8-945F-8FE10234EFA5}\/pic009.png\" width=\"426\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 9:  Eingabe der Server-Adresse<\/span><\/b><\/p>\n<p><IMG height=\"442\" src=\"..\/fileadmin\/_temp_\/{71DA3F6D-5758-4CC8-945F-8FE10234EFA5}\/pic010.png\" width=\"426\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 10:  Informationen f&uuml;r den Tunnel<\/span><\/b><\/p>\n<p><IMG height=\"366\" src=\"..\/fileadmin\/_temp_\/{71DA3F6D-5758-4CC8-945F-8FE10234EFA5}\/pic011.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 11:  Einstellen der DSN-Eigenschaften<\/span><\/b><\/p>\n<p>Sie k&ouml;nnen testen, ob Sie alles richtig gemacht haben, indem Sie doppelt auf den soeben erzeugten Eintrag klicken.<\/p>\n<p>Es sollte eine Shell erscheinen und den Benutzernamen und das Kennwort abfragen. Wenn Sie sich hier erfolgreich einloggen k&ouml;nnen, sind die Voraussetzungen f&uuml;r den nachfolgend beschriebenen automatisierten Zugriff erf&uuml;llt.<\/p>\n<h3>Testen des Tunnelns<\/h3>\n<p>Durch die Einstellungen im Bereich Tunnels werden bei bestehender Verbindung automatisch Daten an Port 3306 des lokalen Rechners an den entsprechenden Port des Internetrechners weitergeleitet. Um dies zu testen, ben&ouml;tigen Sie eine bestehende MySQL-Datenbank auf dem Zielrechner sowie eine bestehende Access-Datenbank. Als Test erstellen Sie eine Verkn&uuml;pfung zu einer Tabelle der MySQL-Datenbank wie im Abschnitt 4.2 beschrieben.<\/p>\n<p>Nun m&uuml;ssen Sie nur noch die DSN konfigurieren und testen. Dazu tragen Sie in den Dialog aus Bild 11 die entsprechenden Werte ein. Wichtig ist, dass Sie f&uuml;r Host\/Server Name (or IP) auf jeden Fall localhost eintragen. Das ist schlie&szlig;lich der Sinn der Sache: Die Daten sollen erst an den lokalen Port 3306 und dann per SSH gesch&uuml;tzt an den Internetserver geschickt werden. F&uuml;r die Felder User und Password tragen Sie die Daten eines Benutzers der unter Database Name angegebenen Datenbank ein.<\/p>\n<p>Mit der Schaltfl&auml;che Test Data Source k&ouml;nnen Sie nun die Verbindung testen. Beachten Sie, dass das nur bei hergestelltem Tunnel funktionieren kann &#8211; Sie m&uuml;ssen sich also vorher per PuTTY am Internetserver angemeldet haben.<\/p>\n<h2>Automatisiertes Erstellen des Tunnels<\/h2>\n<p>Wenn Sie regelm&auml;&szlig;ig mit einem lokalen Access-Frontend auf MySQL-Datenbanken auf dem Internetserver zugreifen m&ouml;chten, ist es nat&uuml;rlich l&auml;stig, immer erst PuTTY zu starten, sich einzuloggen und dann auf die Daten zuzugreifen.<\/p>\n<pre>Global Const SW_HIDE = 0\r\nGlobal Const SEE_MASK_NOCLOSEPROCESS = &H40\r\nType SHELLEXECUTEINFO\r\n    cbSize As Long\r\n    fMask As Long\r\n    hwnd As Long\r\n    lpVerb As String\r\n    lpFile As String\r\n    lpParameters As String\r\n    lpDirectory As String\r\n    nShow As Long\r\n    hInstApp As Long\r\n    lpIDList As Long\r\n    lpClass As String\r\n    hkeyClass As Long\r\n    dwHotKey As Long\r\n    hIcon As Long\r\n    hProcess As Long\r\nEnd Type\r\nDeclare Function ShellExecuteEx Lib \"shell32.dll\" _    (lpExecInfo As SHELLEXECUTEINFO) As Boolean\r\nDeclare Function CloseHandle Lib \"kernel32\" _    (ByVal hObject As Long) As Long\r\nDeclare Function TerminateProcess Lib \"kernel32\" _    (ByVal hProcess As Long, ByVal uExitCode As Long) _    As Long<\/pre>\n<p><b>Quellcode 1<\/b><\/p>\n<p>Daher entwickeln wir nun eine Routine, die automatisch eine Verbindung auf Basis der in PuTTY definierten Daten herstellt.<\/p>\n<p>Die Verbindung stellen Sie mit dem Kommandozeilentool Plink her. Dazu verwenden Sie etwa folgende Anweisung in der Kommandozeile (ohne Zeilenumbruch):<\/p>\n<pre>plink -load ODBCTunnel -l &lt;Benutzername&gt; -pw &lt;Kennwort&gt;<\/pre>\n<p>Diese Anweisung m&uuml;ssen Sie nur noch in einer VBA-Routine unterbringen und daf&uuml;r sorgen, dass diese zum gew&uuml;nschten Zeitpunkt &#8211; etwa beim Start der Datenbankanwendung &#8211; aufgerufen wird. Um Sicherheitsrisiken zu vermeiden, sollten Sie ebenfalls einen Mechanismus unterbringen, der die Verbindung beim Schlie&szlig;en der Datenbank beendet.<\/p>\n<p>Praktisch w&auml;re sicher ein komplett unsichtbarer An- und Abmeldevorgang, doch auch hier gebietet die Sicherheit das Verwenden einer Alternative: Bei voller Automatisierung m&uuml;ssen Sie (wenn Sie nicht mit &ouml;ffentlichen und privaten Schl&uuml;sseln arbeiten) den Benutzernamen und das Kennwort f&uuml;r den Zugang zum Internetserver in der Datenbank speichern.<\/p>\n<p>Alternativ verwenden Sie ein Formular, das beim &ouml;ffnen der Datenbank die Zugangsdaten abfragt und die Verbindung herstellt. Die Verwendung eines Formulars hat den zus&auml;tzlichen Vorteil, dass Sie es nach der Anmeldung unsichtbar machen und darin auch den Mechanismus zum Schlie&szlig;en der Verbindung unterbringen k&ouml;nnen. Dazu legen Sie einfach f&uuml;r die Beim Entladen-Ereigniseigenschaft eine entsprechende Prozedur an.<\/p>\n<p>Da das Formular nach der Anmeldung nur unsichtbar gemacht, aber nicht geschlossen wird, erfolgt das Schlie&szlig;en sp&auml;testens beim Schlie&szlig;en der Datenbankanwendung, was wiederum das Entladen des unsichtbaren Formulars und &#8211; damit verbunden &#8211; die entsprechende Ereignisprozedur ausl&ouml;st.<\/p>\n<p>Damit erlangt man einen weiteren Vorteil: Zum Kappen der Verbindung beendet man einfach den entsprechenden Prozess. Dazu ben&ouml;tigen Sie die Prozess-ID, die Sie unter anderen Umst&auml;nden in einer globalen Variablen speichern m&uuml;ssen.<\/p>\n<p>Bei Verwendung des Formulars k&ouml;nnen Sie diese einfach in einer lokalen Variablen des Klassenmoduls des Formulars ablegen und nachher bequem wieder abrufen.<\/p>\n<h3>Ben&ouml;tigte API-Funktionen<\/h3>\n<p>F&uuml;r das Herstellen und Beenden der Verbindung ben&ouml;tigen Sie drei API-Funktionen sowie die dazugeh&ouml;rigen Konstanten und eine Struktur (s. Quellcode 1). Speichern Sie diese einfach in einem Modul namens mdlAPI.<\/p>\n<h3>Formular zum Herstellen und Beenden der Verbindung<\/h3>\n<p>Anschlie&szlig;end legen Sie das Formular f&uuml;r die Eingabe der Zugangsdaten zum Server an. Das Formular enth&auml;lt folgende Steuerelemente:<\/p>\n<li>Textfeld txtBenutzername mit der Beschriftung Benutzername<\/li>\n<li>Textfeld txtKennwort mit der Beschriftung Kennwort<\/li>\n<li>Schaltfl&auml;che cmdAnmelden mit der Beschriftung Anmelden<\/li>\n<li>Schaltfl&auml;che cmdAbbrechen mit der Beschriftung Abbrechen<\/li>\n<p>Das Formular k&ouml;nnte etwa wie in Bild 12 aussehen. Damit das Kennwort durch Sternchen verborgen wird, stellen Sie die Eigenschaft Eingabeformat des Textfeldes auf den Wert Kennwort ein.<\/p>\n<p><IMG height=\"0\" src=\"..\/fileadmin\/_temp_\/{71DA3F6D-5758-4CC8-945F-8FE10234EFA5}\/pic012.png\" width=\"0\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 12:  Anmeldeformular<\/span><\/b><\/p>\n<h3>Funktion zum Anmelden<\/h3>\n<p>Die Ereignisprozedur Click der Schaltfl&auml;che cmdAnmelden enth&auml;lt den f&uuml;r das Herstellen der Verbindung ben&ouml;tigten Code. Sie verwendet die Struktur SHELLEXECUTEINFO, um die f&uuml;r den Aufruf von Plink mit den entsprechenden Parametern ben&ouml;tigten Informationen zusammenzustellen (s. Quellcode 2).<\/p>\n<p>Der eigentliche Aufruf erfolgt &uuml;ber die API-Funktion ShellExecuteEx, die als Parameter die genannte Struktur erwartet. Die in den Textfeldern eingegebenen Anmeldeinformationen f&uuml;gt die Routine mit einigen weiteren Informationen zur Parameterliste f&uuml;r den Aufruf von Plink zusammen.<\/p>\n<p>Einer dieser Parameter hei&szlig;t load und enth&auml;lt den Namen der Session, die Sie weiter oben mit PuTTY gespeichert haben.<\/p>\n<h3>Hinweis<\/h3>\n<p>Sie k&ouml;nnen die dort gespeicherten Informationen auch direkt in den Aufruf integrieren. Die notwendigen Parameter finden Sie in der Dokumentation. Der Grund, warum wir hier die in der Session gespeicherten Parameter verwenden, ist folgender: Wenn Sie nicht nur eine, sondern mehrere MySQL-Datenbanken auf dem Server per Access-Frontend verwalten m&ouml;chten, sind die Daten f&uuml;r die Herstellung der Verbindung zentral gespeichert. Sollten sich einmal &auml;nderungen ergeben, m&uuml;ssen Sie diese nur an einer Stelle durchf&uuml;hren. <\/p>\n<h3>Trennen der Verbindung<\/h3>\n<p>Die Verbindung soll, wie oben erw&auml;hnt, beim Schlie&szlig;en der Datenbankanwendung und damit beim Entladen des Formulars automatisch getrennt werden.<\/p>\n<p>Dazu legen Sie die Prozedur aus Quellcode 3 f&uuml;r die Ereigniseigenschaft Beim Entladen an. Sie liest aus der Struktur SHELLEXECUTEINFO die Nummer des Plink-Prozesses aus, beendet den Prozess und schlie&szlig;t das Handle.<\/p>\n<p>Das Meldungsfenster f&uuml;r den Fall, dass der Vorgang nicht erfolgreich verl&auml;uft, sollte eigentlich nur erscheinen, falls die Verbindung schon vorher unterbrochen wurde. Anderenfalls kontrollieren Sie kurz, ob sich unter den Prozessen im Taskmanager noch ein oder mehrere Prozesse namens Plink befinden, und beenden diese.<\/p>\n<pre>Option Compare Database\r\nOption Explicit\r\nDim si As SHELLEXECUTEINFO\r\nPrivate Sub cmdAnmelden_Click()\r\n    si.cbSize = Len(si)\r\n    si.fMask = SEE_MASK_NOCLOSEPROCESS\r\n    si.hwnd = Me.hwnd\r\n    si.lpVerb = \"open\"\r\n    si.lpFile = \"plink.exe\"\r\n    si.lpParameters = \"-load ODBCTunnel -l \" & Me.txtBenutzername & \" -pw \" _        & Me.txtKennwort\r\n    si.lpDirectory = Anwendungspfad\r\n    si.nShow = SW_HIDE\r\n    If ShellExecuteEx(si) = False Then\r\n        MsgBox \"Die Verbindung konnte nicht hergestellt werden.\"\r\n    End If\r\n    Me.Visible = False\r\nEnd Sub<\/pre>\n<p><b>Quellcode 2<\/b><\/p>\n<pre>Private Sub Form_Unload(Cancel As Integer)\r\n    Dim exitCode As Long\r\n    If TerminateProcess(si.hProcess, exitCode) &lt;&gt; 0 Then\r\n        CloseHandle (si.hProcess)\r\n    Else\r\n        MsgBox \"Die Verbindung konnte nicht getrennt werden!\"\r\n    End If\r\nEnd Sub<\/pre>\n<p><b>Quellcode 3<\/b><\/p>\n<p>Dem sicheren Zugriff auf MySQL-Datenbanken auf einem Internet-Server steht damit nichts mehr im Wege.<\/p>\n<p>Sie k&ouml;nnen nun, wie weiter oben beschrieben, Tabellen verkn&uuml;pfen und &uuml;ber Abfragen, Formulare und Berichte auf die enthaltenen Daten zugreifen.<\/p>\n<p>In den vorangegangenen Kapiteln haben Sie gelernt, wie Sie einen MySQL-Server installieren und zum Laufen bringen, und ansatzweise erfahren, wie Sie eine bestehende Access-Datenbank in eine MySQL-Datenbank &uuml;berf&uuml;hren.<\/p>\n<p>Wesentlich interessanter sind aber die M&ouml;glichkeiten, Access als Benutzerfrontend f&uuml;r MySQL-Datenbanken zu verwenden und sogar auf Internetservern liegende Datenbanken &uuml;ber eine sichere SSH-Verbindung zu administrieren.<\/p>\n<p>Mit dem vorgestellten Access-Formular und der dahinter stehenden Funktionalit&auml;t erledigen Sie den Verbindungsaufbau per Mausklick. <\/p>\n<p>Nat&uuml;rlich konnten die Eigenschaften von MySQL nur oberfl&auml;chlich beschrieben werden; das Upsizing von Access zu MySQL k&ouml;nnte beispielsweise Thema eines eigenen Beitrags sein.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>MySQL ist ein Open Source-SQL-Server, der wegen seiner Geschwindigkeit und seiner guten Sicher-heitseigenschaften oft f&uuml;r Internetanwendungen im Einsatz ist. Da sehr viele Internetprovider MySQL in mittleren bis gro&szlig;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 &#8211; sowohl mit lokalem MySQL als auch auf dem Internetserver<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662004,66062004,44000026,44000022],"tags":[],"class_list":["post-55000240","post","type-post","status-publish","format-standard","hentry","category-662004","category-66062004","category-Interaktiv","category-SQL_Server_und_Co"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Access und MySQL - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/Access_und_MySQL\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Access und MySQL\" \/>\n<meta property=\"og:description\" content=\"MySQL ist ein Open Source-SQL-Server, der wegen seiner Geschwindigkeit und seiner guten Sicher-heitseigenschaften oft f&uuml;r Internetanwendungen im Einsatz ist. Da sehr viele Internetprovider MySQL in mittleren bis gro&szlig;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\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Access_und_MySQL\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-06T15:17:52+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg05.met.vgwort.de\/na\/26db64198606421688da07d4378eae59\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"23\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_MySQL\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_MySQL\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Access und MySQL\",\"datePublished\":\"2020-05-06T15:17:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_MySQL\\\/\"},\"wordCount\":4385,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_MySQL\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/26db64198606421688da07d4378eae59\",\"articleSection\":[\"2004\",\"6\\\/2004\",\"Interaktiv\",\"SQL Server und Co.\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_MySQL\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_MySQL\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_MySQL\\\/\",\"name\":\"Access und MySQL - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_MySQL\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_MySQL\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/26db64198606421688da07d4378eae59\",\"datePublished\":\"2020-05-06T15:17:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_MySQL\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_MySQL\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_MySQL\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/26db64198606421688da07d4378eae59\",\"contentUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/26db64198606421688da07d4378eae59\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_MySQL\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Access und MySQL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Access und MySQL - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/Access_und_MySQL\/","og_locale":"de_DE","og_type":"article","og_title":"Access und MySQL","og_description":"MySQL ist ein Open Source-SQL-Server, der wegen seiner Geschwindigkeit und seiner guten Sicher-heitseigenschaften oft f&uuml;r Internetanwendungen im Einsatz ist. Da sehr viele Internetprovider MySQL in mittleren bis gro&szlig;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","og_url":"https:\/\/access-im-unternehmen.de\/Access_und_MySQL\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-06T15:17:52+00:00","og_image":[{"url":"http:\/\/vg05.met.vgwort.de\/na\/26db64198606421688da07d4378eae59","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"23\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Access_und_MySQL\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Access_und_MySQL\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Access und MySQL","datePublished":"2020-05-06T15:17:52+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Access_und_MySQL\/"},"wordCount":4385,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Access_und_MySQL\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/26db64198606421688da07d4378eae59","articleSection":["2004","6\/2004","Interaktiv","SQL Server und Co."],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Access_und_MySQL\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Access_und_MySQL\/","url":"https:\/\/access-im-unternehmen.de\/Access_und_MySQL\/","name":"Access und MySQL - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Access_und_MySQL\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Access_und_MySQL\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/26db64198606421688da07d4378eae59","datePublished":"2020-05-06T15:17:52+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Access_und_MySQL\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Access_und_MySQL\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Access_und_MySQL\/#primaryimage","url":"http:\/\/vg05.met.vgwort.de\/na\/26db64198606421688da07d4378eae59","contentUrl":"http:\/\/vg05.met.vgwort.de\/na\/26db64198606421688da07d4378eae59"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Access_und_MySQL\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Access und MySQL"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000240"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000240\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}