MySQL - Eine Einführung

Datenchaos

von Wolfgang Kruck


Jeder, der einen Computer besitzt, kennt das Problem. Mit der Zeit sammeln sich große Mengen Daten wie z.B. Adressen, Dia-Archiv, CD-Listen... Eine einfache und effiziente Möglichkeit mit diesen Daten umzugehen, bieten Datenbanken. Eine Einführung in die unter Linux sehr beliebte Datenbank MySQL ist in diesem Artikel nachzulesen.

MySQL ist ein Multi-User-Datenbankserver, der auf der zur Zeit wohl populärsten Datenbanksprache SQL beruht. MySQL ist eine Client/Server-Implementation und besteht aus einem Datenbankserver mysqld, verschiedenen Client-Programmen und Bibliotheken. Dieser Artikel soll eine Einführung in die Konfiguration und Anwendung von MySQL sein. Es werden dabei die grundlegenden Basiskonfigurationen behandelt, die für den Betrieb des Datenbankservers und den Aufbau einer Datenbank notwendig sind. Ich beziehe mich hier ausschließlich auf die MySQL-Version 3.22.25.

Installation von MySQL

Bei der von mir verwendeten SuSE 6.2 Linux-Distribution kann MySQL bequem über yast installiert werden. Wer eine Distribution verwendet, bei der MySQL nicht dabei ist, fängt am besten mit einen Download von MySQL an [1]. Bei der anschließenden Installation sind die Installationshinweise des MySQL-Pakets zu beachten. Nach erfolgreicher Installation kann die Datenbank gestartet werden. Ich mache nach einer Installation (zumindest auf nicht produktiven Systemen) einen reboot, um zu sehen, ob beim Booten auch alle gewünschten Server starten und ich somit nichts vergessen habe. Um herauszufinden ob die Datenbank läuft, kann man sich nach dem Reboot mit ps ax | greq -i mysql die Prozessliste anschauen. Bei erfolgreicher Installation müssen Einträge der Form wie in Listing 1 vorhanden sein.

Listing 1: Läuft der mysql-Daemon?

Nikita:~ # ps ax | grep -i mysql
  221  ?  SW   0:00 (safe_mysqld)
  231  ?  S N  0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/mysql --skip-
  251  ?  S N  0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/mysql --skip-
  252  ?  S N  0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/mysql --skip-
 1887  ?  S    0:00 grep -i mysql
Nikita:~ #         

Konfiguration von MySQL

Nach der Installation muß erst einmal dem root-User des Datenbankservers (dieser hat nichts mit dem Superuser root von Linux zu tun!) ein Paßwort vergeben werden. Dies geschieht durch einen Aufruf des Programms mysqladmin. Die allgemeine Syntax für einen Aufruf von mysqladmin lautet dabei

mysqladmin [Optionen] Befehl [Befehl ...]

Die hier verwendeten Optionen sind -h, -u und -p. Die Option -h dient zu Angabe eines Hosts (Rechners). Wird -h nicht angegeben, so wird localhost verwendet. Mit Hilfe des Parameters -u kann ein alternativer User angegeben werden, ohne den Parameter -u wird der aktuell angemeldete Linux-User verwendet. Der Parameter -p sorgt dafür, daß mysqladmin vor dem Ausführen des Befehls nach dem Paßwort fragt. Der folgende Befehl setzt das Paßwort des Users root des Datenbankservers auf StrengGeheim.

Nikita:~ # mysqladmin -u root password 'StrengGeheim'

Diese erste Konfiguration kann nun z.B. durch einen Ping geprüft werden.

Nikita:~ # mysqladmin -u root -p ping
Enter password:
mysqld is alive
Nikita:~ #       

Die Version des laufenden Datenbankservers kann ebenfalls leicht mit Hilfe von mysqladmin ermittelt werden (siehe Listing 2).

Listing 2: Welche MySQL-Version läuft auf dem System?

Nikita:~ # mysqladmin -u root -p version
Enter password:
mysqladmin  Ver 7.11 Distrib 3.22.25, for pc-linux-gnu on i686
TCX Datakonsult AB, by Monty

Server version          3.22.25
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /tmp/mysql.sock
Uptime:                 22 min 0 sec

Threads: 1  Questions: 135  Slow queries: 
0  Opens: 13  Flush tables: 1  Open tables: 9
Nikita:~ #

Die bisher durchgeführten Befehle wurden am lokalen System abgesetzt. D.h. auf dem System, auf dem auch der Datenbankserver mysqld läuft. Ein Versuch, von einem anderen System aus auf die Datenbank zuzugreifen, wird zu diesem Zeitpunkt vom Datenbankserver abgelehnt. Dies liegt daran, daß der zur Zeit einzige User root des Datenbankservers keine Rechte hat, um von einem anderen System aus auf den Datenbankserver zuzugreifen. Zum Anlegen neuer User sowie zur Vergabe der Rechte der einzelnen User kann der Client mysql verwendet werden.

Eine kurze Einführung in mysql

mysql ist ein interaktives Client-Programm, mit welchem es möglich ist, eine Verbindung zu einem MySQL-Server aufzubauen, Abfragen abzusetzen und die Resultate der Abfragen anzuschauen. mysql kann auch in einem Batch-Modus verwendet werden, der es erlaubt, die Abfragen an die Datenbank aus einer vorbereiteten Datei heraus einzulesen. Die hier verwendeten Parameter -h, -u und -p von mysql haben die gleiche Bedeutung wie bei mysqladmin. Nachfolgend wird eine Verbindung zum Datenbankserver des lokalen Systems aufgebaut.

Nikita:~ # mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 3.22.25

Type 'help' for help.

mysql>

Die Verbindung zum Datenbankserver kann mit QUIT, EXIT oder durch Drücken der Tastenkombination Control-d wieder beendet werden. Tabelle 1 zeigt die verschiedenen Promptzeichen, die mysql in den verschiedenen Modi einer Abfrage zeigt.

Tabelle 1: Promptzeichen von mysql
mysql> Startklar für einen neuen Befehl
-> Wartet auf die nächste Zeile, bei einem mehrere Zeilen umfassenden Befehl
'> Wartet auf die nächste Zeile beim Aufsammeln eines Strings, der mit einem einfachen Anführungszeichen (') begonnen hat.
"> Wartet auf die nächste Zeile beim Aufsammeln eines Strings, der mit einem doppelten Anführungszeichen (") begonnen hat.

Jeder Befehl muß mit einem Semikolon (;) abgeschlossen werden. Die einzigen Ausnahmen sind die Befehle EXIT und QUIT zum Beenden der Verbindung sowie, der Befehl USE. Tabelle 2 zeigt die hier verwendeten MySQL-spezifischen Befehle.

Tabelle 2: MySQL-spezifische Befehle
EXIT Beendet die Verbindung zum Datenbankserver und das Programm mysql
QUIT Beendet die Verbindung zum Datenbankserver und das Programm mysql
SHOW Liefert Informationen über Datenbanken und Tabellen
USE Dient zur Auswahl einer Datenbank

Nach einer Neuinstallation von MySQL sind normalerweise zwei Datenbanken (Databases), mysql und test, vorhanden. Dies kann man mit Hilfe des Befehls SHOW DATABASES; überprüfen.

mysql> SHOW DATABASES;
+--------------+
| Database     |
+--------------+
| mysql        |
| test         |
+--------------+
2 rows in set (0.01 sec)

mysql>
Die Datenbank test ist eine leere Datenbank, d.h. sie enthält keine Tabellen. In der Datenbank mysql sind unter anderem die User des Datenbankservers und ihre Rechte gespeichert. Mit USE mysql wird dem Datenbank-Server mitgeteilt, daß sich alle folgenden Befehle auf die Datenbank mysql beziehen. Ein anschließendes SHOW TABLES; zeigt die in der Datenbank mysql enthaltenen Tabellen (siehe Listing 3).

Listing 3: Alle in mysql enthaltenen Tabellen

mysql> USE mysql
Database changed
mysql> SHOW TABLES;
+-----------------+
| Tables in mysql |
+-----------------+
| columns_priv    |
| db              |
| func            |
| host            |
| tables_priv     |
| user            |
+-----------------+
6 rows in set (0.00 sec)

mysql>

Einrichten zusätzlicher User

Uns interessiert im Folgenden die Tabelle user. In dieser Tabelle sind die Benutzer des Datenbankservers und ihre Rechte gespeichert. Das Verwalten der Tabellen erfolgt natürlich durch SQL-Befehle. Einen ersten Überblick über den aktuellen Inhalt der Tabelle user verschafft man sich durch den SQL-Befehl SELECT * FROM user;. Dieser Befehl liefert ein Listing des kompletten Inhalts der Tabelle user (siehe Listing 4).

Listing 4: Die Struktur der user-Tabelle

mysql> SELECT * FROM user;
+---------------+------+------------------+-------------+-------------+
| Host          | User | Password         | Select_priv | Insert_priv | 
+---------------+------+------------------+-------------+-------------+
| localhost     | root | 7de697f809c79bb2 | Y           | Y           |
| Nikita        | root | 7de697f809c79bb2 | Y           | Y           | 
| localhost     |      |                  | N           | N           |
| Nikita        |      |                  | N           | N           |
+---------------+------+------------------+-------------+-------------+

------------+-------------+-------------+-----------+-------------+
Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | 
------------+-------------+-------------+-----------+-------------+
Y           | Y           | Y           | Y         | Y           | 
Y           | Y           | Y           | Y         | Y           | 
N           | N           | N           | N         | N           | 
N           | N           | N           | N         | N           | 
------------+-------------+-------------+-----------+-------------+

---------------+--------------+-----------+------------+-----------------+
Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | 
---------------+--------------+-----------+------------+-----------------+
Y             | Y            | Y         | Y          | Y               | 
Y             | Y            | Y         | Y          | Y               | 
N             | N            | N         | N          | Y               | 
N             | N            | N         | N          | Y               | 
---------------+--------------+-----------+------------+-----------------+

-----------+------------+
Index_priv | Alter_priv |
-----------+------------+
Y          | Y          |
Y          | Y          |
Y          | Y          |
Y          | Y          |
-----------+------------+

4 rows in set (0.01 sec)
mysql>

Das Feld Host gibt an, von welchem System aus ein User auf den Datenbankserver zugreifen darf. In diesem Beispiel gibt es nur den User root, er darf vom lokalen System (localhost) und vom System Nikita aus auf den Datenbankserver zugreifen. Beides sind lokale Zugriffe, da Nikita der Name des Systems ist, auf dem der Datenbankserver läuft. Alle *_priv-Felder beschreiben die Rechte (Privileges) des jeweiligen Benutzers. Eine Liste der Rechte, mit einer Beschreibung worauf das Recht wirkt, ist in Tabelle 3 zu finden.

Tabelle 3: Die Rechte (Privileges) der User
Privilege Spalte Wirkt auf
select Select_priv Tabellen
insert Insert_priv Tabellen
update Update_priv Tabellen
delete Delete_priv Tabellen
index Index_priv Tabellen
alter Alter_priv Tabellen
create Create_priv Datenbanken, Tabellen, Indizes
drop Drop_priv Datenbanken, Tabellen
grant Grant_priv Datenbanken, Tabellen
reload Reload_priv Server-Administration
shutdown Shutdown_priv Server-Administration
process Process_priv Server-Administration
file File_priv File-Zugriff auf dem Server

Um zusätzliche Datenbankbenutzer einzurichten, müssen neue Einträge in der Tabelle user erzeugt werden. Diese werden mit dem SQL-Befehl INSERT eingefügt. INSERT trägt dabei die Daten zeilenweise in eine Tabelle ein und prüft die einzutragenden Werte auf ihre Konsistenz mit der Tabellendefinition. Werden keine Fehler gefunden, dann wird die neue Zeile in die Tabelle aufgenommen. Nachfolgend wird der neue User wolfgang eingerichtet. Er darf von jedem Rechner aus auf den Datenbankserver zugreifen (Host = '%'), hat die gleichen Rechte wie root und erhält das Paßwort test. Das Paßwort muß mit Hilfe der Funktion PASSWORD() eingegeben werden. Diese Funktion sorgt dafür, daß das Paßwort verschlüsselt in die Datenbank eingetragen wird.

mysql> INSERT INTO user
    -> VALUES('%','wolfgang',PASSWORD('test'),
    -> 'Y','Y','Y','Y','Y','Y','Y',
    -> 'Y','Y','Y','Y','Y','Y','Y');
Query OK, 1 row affected (0.01 sec)

mysql>

Beim Einrichten neuer User ist Folgendes zu beachten:

Für eine detaillierte Beschreibung der Steuerung des Zugriffs auf den Datenbankserver und auf die einzelnen Datenbanken verweise ich auf die MySQL-Dokumentation Kapitel 6: The MySQL access privilege system. Die Dokumentation ist z.B. bei der SuSE-Distribution unter /usr/doc/packages/mysql/html/index.html oder Online bei [1] zu finden.

Aufbau einer neuen Datenbank

Nachdem die Benutzer der Datenbank eingerichtet und ihre Rechte vergeben sind, kann dazu übergegangen werden, neue Datenbanken aufzubauen. Dazu wird zuerst eine neue Datenbank angelegt und anschließend als aktuelle Datenbank für die folgenden Befehle festgelegt.

mysql> CREATE DATABASE MyDB;
Query OK, 1 row affected (0.00 sec)

mysql> USE MyDB
Database changed
mysql>
Um Daten in der Datenbank MyDB speichern zu können, wird noch mindestens eine Tabelle benötigt. Dazu wird als Beispiel eine Tabelle Adressen mit den Spalten Vorname, Name, Strasse, PLZ, Ort und Geburtstag angelegt. Siehe Tabelle 4 für eine Liste der Typen, die für die Spalten der Tabellen verwendet werden können.
mysql> CREATE TABLE Adressen (
    -> Vorname     VARCHAR(25),
    -> Name        VARCHAR(25),
    -> Strasse     VARCHAR(40),
    -> PLZ         INT(5),
    -> Ort         VARCHAR(40),
    -> Geburtstag  DATE	 );
Query OK, 0 rows affected (0.00 sec)

mysql>

Tabelle 4: Die wichtigsten MySQL-Datentypen
BLOB Ein Binär-String mit einer maximalen Länge von 65535 Zeichen.
CHAR(N) Ein String mit der festen Länge N, wobei für N Werte von 1 bis 255 möglich sind.
DATE Ein Datum in Bereich von '1000-01-01' bis '9999-12-31'. Das Format eines Datums in MySQL ist 'YYYY-MM-DD'.
INT[(N)] [UNSIGNED] Eine Integer-Zahl im Bereich von -2147483648 bis 2147483647. Der unsigned-Bereich geht von 0 bis 4294967295
TEXT Ein String mit einer maximalen Länge von 65535 Zeichen.
TIME Eine Zeit im Bereich von '-838:59:59' bis '838:59:59'. Das Format eines TIME-Wertes ist 'HH:MM:SS'.
VARCHAR(N) Ein String mit einer variablen Länge. Die maximale Länge des Strings ist N, wobei für N Werte von 1 bis 255 möglich sind.

Der letzte Schritt im Erstellen einer Datenbank ist das Einfügen von Daten in die Tabelle. Dies kann manuell erfolgen oder aber durch vorbereitete Dateien, in denen die entsprechenden SQL Befehle stehen. Ich habe z.B. eine Datei Adressen.txt vorbereitet (siehe Listing 5), in welcher die notwendigen Schritte zum Erstellen einer Tabelle Adressen und das Einfügen der Daten vorbereitet sind. Mit EXIT wird an dieser Stelle das Client-Programm mysql verlassen, um anschließend die Datei Adressen.txt durch Verwenden des Batch Modus von mysql einzulesen. Im folgenden Aufruf von mysql bezeichnet MyDB dabei die von uns zuvor angelegte Datenbank, in die die Tabelle und die Daten eingefügt werden sollen.

mysql> exit
Bye
Nikita:~ # mysql -u root -p MyDB < Adressen.txt
Enter password:
Nikita:~ #

Listing 5: Die Batchdatei Adressen.txt

# Anlegen der Tabelle Adressen
#
CREATE TABLE  Adressen (
   Vorname    VARCHAR(25),
   Name       VARCHAR(25),
   Strasse    VARCHAR(50),
   PLZ        INT(5),
   Ort        VARCHAR(50),
   Geburtstag DATE   
);

# Daten in der Tabelle Adressen speichern
#
INSERT INTO Adressen VALUES("Hugo", "Müller", "Lindenstraße 25", 
                             12345, "Oberdorf", "1970-01-25");
INSERT INTO Adressen VALUES("Tina", "Maier", "Gartenweg 18",    
                             12345, "Oberdorf", "1969-11-09");
INSERT INTO Adressen VALUES("Claus", "Smith", "Baumstraße 44",   
                             12345,  "Oberdorf", "1973-06-17");
INSERT INTO Adressen VALUES("Kerstin", "Müller", "Hauptstraße 2",   
                             12345,    "Oberdorf", "1968-08-15");

Nach dem Anlegen der Tabelle in der Datenbank MyDB kann man sich durch einige Abfragen an die Datenbank vom Erfolg der Aktion überzeugen. Nach dem Anmelden am Datenbank Server mit mysql und dem Wechsel zur Datenbank MyDB (USE MyDB;) können die verfügbaren Tabellen der Datenbank mit dem Befehl SHOW TABLES; angezeigt werden (siehe Listing 6).

Listing 6: Die neu erzeugten Tabellen in MyDB

Nikita:~ # mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 40 to server version: 3.22.25

Type 'help' for help.

mysql> USE MyDB
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> SHOW TABLES;
+----------------+
| Tables in MyDB |
+----------------+
| Adressen       |
+----------------+
1 row in set (0.00 sec)

mysql>

Nicht nur das Vorhandensein der Tabelle Adressen ist von Interesse, auch die Struktur der Tabelle gilt es zu prüfen. Ob eine Tabelle Felder enthält die nicht leer sein dürfen kann mit dem SQL Befehl DESCRIBE geprüft werden (siehe Listing 7).

Listing 7: Ausgabe des DESCRIBE-Befehls

mysql> DESCRIBE Adressen;
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| Vorname    | varchar(25) | YES  |     | NULL    |       |
| Name       | varchar(25) | YES  |     | NULL    |       |
| Strasse    | varchar(50) | YES  |     | NULL    |       |
| PLZ        | int(5)      | YES  |     | NULL    |       |
| Ort        | varchar(50) | YES  |     | NULL    |       |
| Geburtstag | date        | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
6 rows in set (0.01 sec)

mysql>

Als letztes kann man sich noch davon überzeugen, daß alle in der Datei Adressen.txt enthaltenen Adressen in die Tabelle übernommen wurden (siehe Listing 8).

Listing 8: Alle Adressdaten imÜberblick

mysql> SELECT * FROM Adressen;
+---------+--------+-----------------+-------+----------+------------+
| Vorname | Name   | Strasse         | PLZ   | Ort      | Geburtstag |
+---------+--------+-----------------+-------+----------+------------+
| Hugo    | Müller | Lindenstraße 25 | 12345 | Oberdorf | 1970-01-25 |
| Tina    | Maier  | Gartenweg 18    | 12345 | Oberdorf | 1969-11-09 |
| Claus   | Smith  | Baumstraße 44   | 12345 | Oberdorf | 1973-06-17 |
| Kerstin | Müller | Hauptstraße 2   | 12345 | Oberdorf | 1968-08-15 |
+---------+--------+-----------------+-------+----------+------------+
4 rows in set (0.00 sec)

mysql>

An dieser Stelle ist die neue Datenbank MyDB vollständig angelegt und geprüft. Es kann dazu übergegangen werden, die Datenbank zu nutzen. Es folgt nun ein kleiner Exkurs durch einige der möglichen Abfragen, die an eine Datenbank gestellt werden können.

SQL-Abfragen

Um ein wenig Nutzen aus unserer kleinen Datenbank zu ziehen kann z.B. das Alter der Personen in der Tabelle Adressen ermittelt werden (siehe Listing 9).

Listing 9: Ermitteln des Alters mit SQL

mysql> SELECT Vorname,Name,(TO_DAYS(NOW())-TO_DAYS(Geburtstag))/365
    -> FROM Adressen;
+---------+--------+------------------------------------------+
| Vorname | Name   | (TO_DAYS(NOW())-TO_DAYS(Geburtstag))/365 |
+---------+--------+------------------------------------------+
| Hugo    | Müller |                                    29.61 |
| Tina    | Maier  |                                    29.82 |
| Claus   | Smith  |                                    26.21 |
| Kerstin | Müller |                                    31.05 |
+---------+--------+------------------------------------------+
4 rows in set (0.00 sec)

mysql>

Dies läßt sich noch etwas besser lesbar gestalten, indem man der Berechnung einen Namen gibt, und das Ganze dann noch nach dem Alter sortiert ausgibt (siehe Listing 10). Am liebsten hätte ich die dritte Spalte 'Alter' genannt, doch ALTER ist ein SQL-Schlüsselwort und kann nicht verwendet werden. Ich weiche deshalb auf das Englische 'age' aus.

Listing 10: Neue Namen durch AS-Umbenennungen

mysql> SELECT Vorname,Name,((TO_DAYS(NOW())-TO_DAYS(Geburtstag))/365) AS age
    -> FROM Adressen ORDER BY age;
+---------+--------+-------+
| Vorname | Name   | age   |
+---------+--------+-------+
| Claus   | Smith  | 26.21 |
| Hugo    | Müller | 29.61 |
| Tina    | Maier  | 29.82 |
| Kerstin | Müller | 31.05 |
+---------+--------+-------+
4 rows in set (0.00 sec)

mysql>

Eine klassische Datenbankanwendung ist natürlich das Suchen nach Begriffen. Das folgende Beispiel zeigt eine solche Suche nach allen Namen, welche mit der Buchstabenfolge 'er' enden (siehe Listing 11).

Listing 11: Einfacher SELECT-Befehl

mysql> SELECT * FROM Adressen WHERE Name LIKE '%er';
+---------+--------+-----------------+-------+----------+------------+
| Vorname | Name   | Strasse         | PLZ   | Ort      | Geburtstag |
+---------+--------+-----------------+-------+----------+------------+
| Hugo    | Müller | Lindenstraße 25 | 12345 | Oberdorf | 1970-01-25 |
| Tina    | Maier  | Gartenweg 18    | 12345 | Oberdorf | 1969-11-09 |
| Kerstin | Müller | Hauptstraße 2   | 12345 | Oberdorf | 1968-08-15 |
+---------+--------+-----------------+-------+----------+------------+
3 rows in set (0.02 sec)

mysql>

Das Prozent-Zeichen (%) ist ein SQL Wildcard-Zeichen und steht für eine beliebige Anzahl von Zeichen. Ein weiteres Wildcard-Zeichen ist der Unterstrich (_). Es steht für exakt ein Zeichen.

Geht's auch komfortabler?

Es geht! MySQL bietet eine Vielzahl von Schnittstellen z.B. für C/C++, Perl, Eiffel, Java, PHP, ODBC, Python/Zope und TCL. Dies ermöglicht das Einbinden der Datenbank in eigene Anwendungen, die den jeweiligen Bedürfnissen exakt angepaßt und leicht zu bedienen sind. Auch ohne eigene Programmierung ist ein komfortabler Umgang mit der Datenbank möglich. Ein bekannter Client für MySQL ist z.B. phpMyAdmin [4]. Diese Datenbankoberfläche nutzt, wie schon der Name sagt, die Schnittstelle von MySQL zu PHP und ist eine Web-basierte Anwendung, d.h., zum Betrieb von phpMyAdmin ist ein laufender Apache-WebServer [2] und PHP3 [3] notwendig. Bei der SuSE-Distribution muss man dazu die Pakete apache und mod_php (beide Serie n) installieren. phpMyAdmin kann man sich bei [4] downloaden.


Abb. 1: MySQL-Datenbanken bequem übers Web mit phpMyAdmin verwalten

Natürlich gibt es auch jede Menge KDE- und GNOME-Applikationen, die den bequemen Umgang mit MySQL und anderen Datenbanken erlauben, dazu vermutlich mehr in einer späteren Ausgabe. Und wer nach dem Lesen dieses Artikels Lust auf mehr erhalten hat, sollte unbedingt einen Blick in das neue O'Reilly-Buch [6] werfen, das sehr ausführlich auf die Datenbanken MySQL und mSQL eingeht.

Infos

[1] MySQL: http://www.mysql.org
[2] Apache: http://www.apache.org
[3] PHP3: http://www.php3.net
[4] phpMyAdmin: http://www.phpwizard.net/phpMyAdmin
[5] Die Homepage des Autors: http://home.t-online.de/home/wolfgang.kruck
[6] MySQL & mSQL: R. J. Yarger, G. Reese & T. King, O'Reilly 1999, 500 Seiten, 1-56592-434-7

Der Autor

Dipl. Ing. (FH) Wolfgang Kruck ist Software-Entwickler. Wenn er nicht vor seinen Computern sitzt und Programme schreibt oder Konfigurationen testet, dann kann man ihn beim Mountainbikefahren in den Alpen oder in Südfrankreich treffen.

Copyright © 1999 Linux-Magazin Verlag