AMIGA-Magazin · Ausgabe 08/01 · Kurs: MySQL-Praxis auf dem Amiga (Folge 1)

Aktuelles Heft 8/01

Daten servieren

Mit MySQL steht jetzt auch für den Amiga ein ausgereiftes relationales Datenbanksystem zur Verfügung. Es handelt sich um eine Portierung, die einen sehr guten Entwicklungsstand aufweist und daher auch sehr oft, im praktischen Einsatz zu finden ist.

von Michael Christoph

MySQL lebt:
Nach dem Aufruf des Clients kann man sich mit dem Server verbinden und mit »status« testen.
Apache läuft:
Nach erfolgreicher Installation, Konfiguration und Start, sollte der Web-Server diese Seite anzeigen.
Miami im Griff:
In der Datenbank werden Benutzergruppe und User für den Apache bzw. MySQL angegeben.
Update:
Für den lokalen Zugriff auf MySQL per Web-Browser müssen die Sicherheits-Einstellungen in der Datenbank einem Update unterzogen werden.

Bei der Portierung handelt es sich um die Version 3.23.38. Für Linux ist zwar bereits die Version 4.0.x erhältlich, allerdings wird diese noch als Entwicklungsversion bezeichnet, wogegen die 3.x als fehlerfrei« anzusehen ist. Die 4.0 enthält dagegen neuere Features, wie Transaktionen, die noch nicht zur Verfügung stehen. Das stellt in der Regel aber kein Problem dar, da sich die meisten Beispiele im Internet auch noch auf die 3er Version beziehen.

MySQL Installieren

MySQL ist fertig kompiliert für den Amiga im Internet erhältlich. Zuerst sollte auf der Festplatte eine Schublade mysql erzeugt werden. Dorthinein wird das Archiv per

lzx x mysqld_3.23.37.lzx

entpackt. Abschließend wird noch ein Assign MYSQL: auf dieses Verzeichnis benötigt. Es ist vorteilhaft, diesen Assign auch in der s:user-startup einzutragen, damit er bei jedem Rechner-Neustart sofort zur Verfügung steht. mySQL beruht auf dem Client-Server-Prinzip. Es gibt einen Server, der die Datenbanken schreibt und liest und beliebig viele Clients, die Anfragen an den Server senden. Der Server kann auch auf einem anderen Rechner (z.B. im Internet) laufen, während die Anfragen vom lokalen Web-Browser vorgenommen werden. Wir beschränken uns hier lediglich auf den lokalen Einsatz. Ob und wie Ihr Provider MySQL unterstützt, müssen Sie dort erfragen.

Apache Installieren

Um eigene Skripte in Ruhe lokal testen zu können, wird ein lokaler Web-Server benötigt. Auch zum Abfragen/Pflegen der Datenbanken über den Browser muss ein Web-Server installiert sein. Am weitesten verbreitet ist Apache, von dem auch eine Portierung für den Amiga vorliegt (aktuell 1.3.20). Das Archiv ist aus dem Internet zu besorgen. Entpacken Sie es mit

untgz apache_1.3.20.tar.gz

in eine neue Schublade (z.B. apache). Alternativ können Sie auch gzip und tar verwenden ­ beide Packertools finden Sie im Aminet. Ein Assing APACHE: auf diese Schublade sollte wieder in der User-Startup Datei eingetragen werden. Unter APACHE:conf/httpd.conf können die lokalen Anpassungen vorgenommen werden. Details dazu finden Sie u.a. auf der Amiga-Magazin-Webseite im Internet.

Miami konfigurieren

Sowohl MySQL als auch Apache stammen aus dem Linux/Unix-Bereich. Diese Betriebssysteme arbeiten benutzerorientiert. Aus diesem Grund sind auf dem Amiga auch Benutzer und Gruppen für die einzelnen ienste anzulegen.

Da diese Möglichkeiten im AmigaOS nicht realisiert sind, übernimmt der TCP/IP-Stack (z.B. »Miami«) diese Aufgabe. Am Beispiel vom verbreiteten Miami werden die Eintragungen erläutert. Diese Einstellungen können Sie auch in der Demoversion vornehmen.

Wechseln Sie in die Rubrik »Datenbank« (Database), und rufen Sie dort die Seite »Gruppen« (Group) ab. Tätigen Sie folgende Eintragung:

Gruppenname: www, Gruppen-ID: 45

Hinweis: Die Gruppen-ID kann abweichen und ist von der Konfiguration Ihres Systems abhängig. Das gilt später auch für die Benutzer-Nummer (User-ID).

Auf der Seite "Benutzer" tragen Sie folgendes ein:

Username: www,
User-ID: 1001,
Gruppen-ID: 45,
Realname: Apache WWW server,
Verzeichnis: APACHE:,
Shell: cli

Apache: Speicher sparen

Apache ist in der Grundkonfiguration sehr »speicherhungrig«, was bei mäßiger Ausstattung mit RAM sehr schnell zu Problemen führen kann. Durch Änderung der Einstellungesdatei, lässt sich der Speicherverbrauch aber reduzieren. Trotzdem sollten schon 32 MByte vorhanden sein, wenn Apatche, MySQL und Web-Browser gleichzeitig laufen. Folgende Einstellungen sollten Sie in der httpd.conf vornehmen, um Speicher zu sparen. APACHE:conf/httpd.conf:
MinSpareServers 2
MaxSpareServers 4
StartServers 1
MaxClients 10

Username: mysql,
User-ID: 1003,
Gruppen-ID: 45,
Realname: mySQL Datenbank,
Verzeichnis: MYSQL:,
Shell: cli

Passwörter sind im lokalen Testbetrieb nicht erforderlich. Wenn Sie Ihren Amiga mit dem Internet verbinden oder im Intranet nutzen, sollten Sie den Usern www und mysql Passwörter geben. Ansonsten laufen Sie Gefahr, dass man in Ihren Rechner einbricht. Resultat kann Daten-Verlust bzw. Manipulation sein.

Ready to go

Nachdem nun alle notwendigen Komponenten installiert wurden, muss noch die Funktionsfähigkeit überprüft werden. Dazu muss Miami bereits laufen, damit die verwendeten User bekannt sind.

Starten Sie als erstes den Apache Server in der Shell:

run apache:bin/httpd

Aufrufoptionen sind nicht erforderlich, wenn alles in APACHE:conf/httpd.conf korrekt konfiguriert wurde.

Bezugsquelle im Internet
MySQL für Amiga http://sixk.maniasys.com
http://sixk.maniasys.com http://amiga-apache.home. pages.de/
untgz Aminet: /util/arc/untgz.lha
lzx Aminet: /aminet/util/arc/lzx.lha
GadgetGeek-Umgebung http://www.geekgadgets.org

Ob der Apache-Server nach dem Starten korrekt funktioniert, ist einfach mit dem Web-Browser festzustellen. Geben Sie als URL http://localhost/ ein. Danach sollte die Begrüßungsseite von Apache erscheinen (s. »Apache läuft«). Die Index-Datei für den Dokumenten-Root ist unter APACHE:htdocs zu finden. Wenn Sie den Pfad für diese Datei geändert haben, müssen Sie im entsprechenden Verzeichnis suchen. Der Ort für die gehosteten Webseiten läßt sich in der Sektion Document Root in der httpd.conf festlegen. Alle dort befindlichen Dateien (auch eigene), können nun per URL-Adresse abgefragt werden.

 

MySQL Server starten

Der MySQL-Server ist im Verzeichnis MYSQL:bin zu finden und trägt den Namen »mysqld«. Beim Start der Datenbank sind die Aufrufparameter zwingend erforderlich, so dass sich ein Startscript anbietet. Anzugeben ist, unter welchem Benutzer der Server laufen soll und wo die Datenbanken abgelegt werden. Weitere Einstellungen können in mysql:my.cnf (Default-Konfiguration) eingetragen werden.

run mysql:bin/mysqld -defaults-file=/mysql/my.cnf -uroot -basedir=/mysql/ -datadir=/mysql/data/ -language=/mysql/language/german/ -tmpdir=/mysql/tmp/

Kursübersicht
Grafische Benutzeroberflächen unter AmigaOS 3.5 entwerfen
Teil 1: Beschreibung der Installation und Konfiguration von MySQL und Apache. Erster Test mit einem PHP-Skript und . Sicherheitshinweise.
Teil 2: Vorstellung der einzelnen SQL-Kommandos und ihrer Anwendung mit Hilfe des MySQL-Clients.
Teil 3: Abfrage von Datenbanken mit Hilfe von PHP und Generierung dynamischer Webseiten.

Alternativ können Sie den mitgelieferten Start-Script im Amiga-MySQL-Archiv verwenden ­ Sie müssen ihn aber zuvor auf Ihre Rechnerkonfiguration (MySQL-User usw.) anpassen. Entsprechende Informationen finden Sie in der Anleitung zu Amiga-MySQL. Nachdem mysqld gestartet wurde, wird in der Konsole folgender Text angezeigt (je nach eingestellter Sprache):

mysql:bin/mysqld: Warten auf Verbindungen

Über den Befehl mysql wird der MySQL-Monitor gestartet. Dieser erlaubt die Eingabe und das Testen aller SQL-Kommandos einzeln und auch als Skript. Als Aufrufparameter sind zusätzlich mitzugeben:

mysql -u <user> -h <host>

Diese Angaben sind notwendig, wenn Ihre Systemeinstellungen von den Standardeinstellungen abweichen sollten. So kann z.B. in MySQL festgelegt werden, dass nur der Benutzer mysql Datenbanken erzeugen und verändern darf, während der User www (der Webserver) nur lesenden Zugriff auf die Daten hat. Konnte erfolgreich eine Verbindung zum mySQL-Server hergestellt werden, wird »Welcome to the MySQL monitor. ...« ausgegeben. Das Programm wartet nun auf die Eingabe von SQL-Kommandos. Mit STATUS wird der aktuelle Zustand des MySQL-Server angezeigt.

Nachdem der direkte Zugriff funktioniert, muss noch festgestellt werden, ob auch der Browser eine Verbindung zum MySQL-Server herstellen kann. Das kleine Beispiel in Listing 1 erledigt das für uns. Die genaue Beschreibung der PHP-Befehle folgt im dritten Teil.

Diese Datei können Sie unter dem Namen mysql-test.php im Directory für die Webseiten speichern. Wurde DocumentRoot in der Apache-Konfiguration nicht verändert, muss das im Verzeichnis APACHE:htdocs erfolgen. Geben Sie im Browser http://localhost/mysql-test.php ein. Zeigt der Browser den Quellcode von Listing 1, ist Apache nicht korrekt für die Ausführung von PHP konfiguriert. Eventuell benutzen Sie eine zu alte Version und haben keinen Support von PHP. Ansonsten wird eine Erfolgsmeldung im Browser ausgegeben. Beachten Sie auch unbedingt die Hinweise im Kasten »Schutzmechanismen von mySQL«.

Gerade wenn es spannend wird, sind wir leider schon am Ende. Freuen Sie sich schon auf den nächsten Teil, der genauer auf SQL eingeht. Im dritten Teil wird das Gelernte in der Praxis in Verbindung mit PHP auszuprobiert. Wenn Sie Probleme mit der Konfiguration und dem Start von MySQL haben, können Sie gern der Redaktion schreiben. Wir veröffentlichen die Antworten in der nächsten Ausgabe. Über Anregungen und Tipps freuen wir uns natürlich auch!

Schutzmechanismen von mySQL

MySQL benutzt ein zweistufiges Sicherungskonzept, um unbefugte Zugriffe auf die Datenbanken abzuwehren. In der ersten Stufe wird überprüft, ob der anfragende Host (im lokalen Betrieb ist dies localhost) die Erlaubnis hat, auf die Datenbank zuzugreifen. Im zweiten Schritt wird dann noch überprüft, ob der angegebene User auf die angegebene Datenbank Zugriff hat. Zusätzlich werden dann nochmals bei jedem Zugriff überprüft, ob die gewählte Aktion für den betreffenden User in der Datenbank/Tabelle erlaubt ist (z.B. die Befehle Insert oder Delete).
Die Einstellungen erfolgen in der Datenbank mysql, die nach der Installation von MySQL schon existieren. Sie dürfen auf keinen Fall gelöscht werden. Benutzer sind in der Tabelle user, Rechner in der Datei host eingetragen. In db können noch die Rechte für einzelne Datenbanken festgelegt werden.
Im Orginalzustand von MySQL ist bereits der User root mit allen Rechten eingetragen und Zugriff von localhost ist erlaubt. Damit aber auch Zugriffe vom Web-Browser aus möglich sind, muss noch die numerische IP von localhost, nämlich 127.0.0.1 in der Datenbank erfasst werden! Ansonsten funktionieren die Zugriffe nicht, da MySQL keine Domain-Lookup ausführt. In der Praxis bedeutet das ­ die Datenbank überprüft keine IPs auf dazugehörige Hostnamen. Der Zugriff per Browser und PHP-Skript funktioniert dann nicht. Folgende Befehle erledigen das Update für localhost:
use mysql;
insert into user values ("127.0.0.1","root","","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y");


lb


Hauptseite © 2001 All Rights Reserved. Alle Rechte vorbehalten Franzis' Verlag GmbH
Veröffentlichung und Vervielfältigung nur mit schriftlicher Genehmigung des Verlags

Kommentare, Fragen, Korrekturen und Kritik bitte an Webmaster AMIGA schicken.
Zuletzt aktualisiert am 23. Oktober 2001, Michael Christoph.