Anfangs Jahr habe ich vollmundig einige Pläne für 2020 verkündet, die hier im Blog mit dem Eindruck-schindenden Tag Projekt 2020 versehen sind. Das eine Projekt ist lanciert und unter mrclicko.de zu finden. Das andere Projekt ist nach der Ankündigung in einen Tiefschlaf verfallen.
Dieses andere Projekt habe ich im Blogpost Access denied bei dieser Datenbank kurz umrissen: Es geht darum, meine seit ungefähr 1990 im Einsatz befindliche Artikel-Datenbank in eine moderne Form überzuführen. Zum Einsatz kommt bislang MS Access. Ich würde die Datenbank aber gerne via Web pflegen und suche daher einen Weg, den Datenbestand aus Access in ein offeneres Format zu überführen. Es drängt sich MySQL auf – denn dann könnte ich die Datenbank auf meinem Webserver bei Hostpoint deponieren und sie zum Beispiel über diese Domain hier nutzen.
Ich habe derzeit Ferien und einen unerwarteten Durchbruch erzielt: Die Datenbank aus Access nach MySQL und auf den Webserver zu bekommen, war total einfach und unkompliziert. Ich bin jetzt noch baff, dass es Dinge gibt, die so viel einfacher sind, als ich es erwartet hätte.
Ab auf den Server mit der Datenbank
Und so hat es funktioniert:
Ich habe als Erstes eine Datenbank eingerichtet. Bei Hostpoint gibt es, wie bei vielen anderen Hosting-Anbietern, fürs Rumbasteln an Datenbanken phpMyAdmin.
Als Zweites habe ich nach einer Möglichkeit gesucht, die Datenbank zu konvertieren. Nach einer kürzeren Suche bin ich auf die Freeware Access To MySQL gestossen. Die wirft beim Start eine lange Fehlermeldung (Unable to find a 32-bit MySQL ODBC driver on this computer. Please install the lastest 32-bit ODBC driver from MySQL. (…)). Da ich in der Vergangenheit gute Erfahrungen damit gemacht habe, Fehlermeldung mit Bezug auf ODBC einfach zu ignorieren, mache ich das auch jetzt ebenfalls – und siehe da, es funktioniert trotzdem.
Ich vermute, dass das Programm die Daten direkt in eine lokal laufende MySQL-Datenbank transferieren würde, wenn eine solche auf dem lokalen Rechner laufen würde. Das ist aber nicht das, was ich will – und ohne die Datenbank erhält man einen Dump, also eine Offline-Abbildung des Inhalts.
Schnell konvertieren
Viel angeben muss man im Programm nicht. Man kann einen Namen für die Datenbank vergeben – doch auch das kann man sich auch sparen, wenn man selbst eine Datenbank angelegt hat, in die man die Daten dann importiert. Bei Storage Engine wählt man die passende Geschmacksrichtung, in meinem Fall MariaDB. Aber ich vermute, dass es sogar funktionieren würde, wenn man die Voreinstellung belässt.
Nun wählt man die zu importierenden Tabellen aus (alle), stösst den Import an und sucht dann auf der Festplatte nach dem Resultat. In meinem Fall findet sich das mit dem Dateinamen dump.sql im Windows-Dokumentenordner.
Nun bleibt nichts weiter übrig, als diese Datei via phpMyAdmin zu importieren. Beim ersten Versuch erscheint eine Fehlermeldung: #1044 – Benutzer ‚hpid_49073’@’10.0.24.%‘ hat keine Zugriffsberechtigung für Datenbank ‚movedb‘
Die Erklärung ist schnell gefunden: Wie oben erwähnt, soll durch den Dump eine neue Datenbank erstellt werden, für die aber keine Zugriffsrechte bestehen.
Und fertig ist die Datenbank
Um das zu verhindern, kommentiert man den Befehl zur Erstellung der neuen Datenbank aus und gibt stattdessen die Datenbank an, die man selbst vorbereitet hat:
# CREATE DATABASE IF NOT EXISTS `movedb`;
# USE `movedb`;
USE `matthi95_artikel`;
Und das war es auch schon: Wie ein Augenschein via phpMyAdmin zeigt, sind alle Daten da. Und ein kleines PHP-Script beweist, dass auch die Abfrage wunderbar funktioniert.
So weit, so erfreulich. Nur stellt sich eine zweite Frage: Wie komme ich nun zu einem hübschen Frontend, über das ich Artikel abfragen, ändern und neu erfassen kann? Klar – ich könnte das nun von Grund auf selbst in PHP schreiben. Aber das wäre bei meinen bescheidenen Fähigkeiten und völlig fehlender Routine eine mühsame Angelegenheit.
Eure Tipps sind gefragt!
Darum hier ein kleiner Aufruf mit Hashtag #followerpower: Ich bin froh um Tipps, wie man diesen Vorgang vereinfachen könnte. Es müsste doch Hilfsmittel geben, mit denen man sich simple Abfragen und Ausgaben zusammenklicken kann, ohne den Code von Hand zu schreiben. Das ist so ein häufiger Anwendungsfall, dass der geneigte Code Monkey regelrecht die Qual der Wahl hat, was hervorragende Tools anbelangt.
Ich habe natürlich selbst herumgesucht und auch einiges gefunden. Zum Beispiel PHP Runner. Das Ding macht genau das, was ich möchte – doch der Preis ist mir mit 500 US-Dollar etwas gar noch. Trotzdem habe ich es ausprobiert und im Beitrag Das grande Finale mit einem monetären Schönheitsfehler ausführlich besprochen.
Darum: Bevor ich nun weiter im Netz stochere und Dinge ausprobiere, die dann doch nicht so toll sind, frage ich lieber euch, die ihr viel mehr Erfahrung damit habt:
Also, bitte die Tipps in die Kommentare oder hier ins Formular. Ich werde Hinweise selbstverständlich in einem weiteren Beitrag verdanken!
Beitragsbild: Markus Spiske, Unsplash-Lizenz