12.2 MySQL – ein konkretes RDBMS
In diesem Abschnitt werden die Installation, die Konfiguration und die ersten Schritte mit einem relationalen Datenbanksystem besprochen. Es handelt sich um die weitverbreitete, beliebte Datenbank MySQL. Dieses System habe ich ausgewählt, weil Sie es kostenlos herunterladen und leicht installieren können und weil es in Zusammenarbeit mit der Programmiersprache PHP die Grundlage vieler dynamischer Websites bildet. Die MySQL-Programmierung mit PHP wird in Kapitel 18, »Webserveranwendungen«, erläutert.
12.2.1 MySQL installieren und konfigurieren
In diesem Abschnitt wird die Installation von MySQL in der aktuellen stabilen Version 5.6 erläutert. Zusätzlich erfahren Sie, wie Sie die beiden nützlichen Zusatzprogramme MySQL Administrator und MySQL Query Browser installieren können.
Installation unter Unix
Überprüfen Sie zunächst, ob MySQL nicht bereits Bestandteil Ihrer Systemdistribution ist; in der Regel dürfte dies der Fall sein. Auf der Website http://www.mysql.com finden Sie für zahlreiche Unix-Varianten Binärpakete. Laden Sie die passenden herunter, entpacken Sie sie, und erstellen Sie der Bequemlichkeit halber einen Symlink von dem relativ langen Pfadnamen nach /usr/local/mysql.
Für so gut wie alle Unix-Versionen ist natürlich die Quellcode-Distribution geeignet. Diese müssen Sie wie üblich als Erstes entpacken; anschließend können Sie in das neu erstellte Verzeichnis wechseln:
# tar -xzvf mysql-5.6.12.tar.gz
# cd mysql-5.6.12
Aus Sicherheitsgründen sollten Sie einen neuen Benutzer und eine neue Gruppe erstellen; der MySQL-Server wird dann unter dieser User- und Group-ID ausgeführt. Dazu können Sie auf einem Linux-System beispielsweise die folgenden Befehle verwenden:
# groupadd mysql
# useradd -g mysql mysql
Da dieser »Benutzer« sich niemals persönlich anmelden wird, können Sie sich als Passwort einen vollkommen unmöglichen Zeichensalat ausdenken, den Sie sich nicht einmal zu merken brauchen.
Nun wird die folgende Befehlsfolge zur Konfiguration und Kompilierung eingegeben:
# ./configure --prefix=/usr/local/mysql \
--with-mysqld-user=mysql
# make
# make install
Sie können configure vorher auch mit der Option --help aufrufen, um Informationen über weitere Einstellungen zu erhalten. Die hier verwendeten Optionen legen /usr/local/mysql als Stammverzeichnis fest und sorgen dafür, dass der Server unter der soeben angelegten User-ID ausgeführt wird.
Nach dem Entpacken der Binärvariante beziehungsweise der Installation der Source-Version müssen Sie die sogenannten MySQL Grant Tables erstellen, die die Authentifizierungs- und Berechtigungsdaten enthalten. Dazu können Sie folgendes Skript im bin-Verzeichnis Ihrer MySQL-Installation ausführen:
# ./mysql_install_db --user=mysql
Als Nächstes sollten Sie einige Besitzrechte setzen: Die ausführbaren MySQL-Programme sollten auf root übertragen werden, das Datenverzeichnis auf den neu angelegten User mysql. Wenn Sie MySQL mit dem PREFIX /usr/local/mysql installiert haben und sich in diesem Verzeichnis befinden, können Sie dies folgendermaßen tun:
# chown -R root .
# chown -R mysql data
# chgrp -R mysql .
Nun können Sie den mysql-Server starten:
# /usr/local/mysql/bin/mysqld_safe --user=mysql &
Das angehängte & führt dazu, dass der Befehl im Hintergrund ausgeführt wird, sodass Sie das entsprechende Terminal für andere Aufgaben weiterverwenden können. Falls Sie MySQL beim Hochfahren des Systems automatisch starten möchten, können Sie sich an die ausführliche Anleitung halten, die in Kapitel 7, »Linux«, teils für den Apache-Webserver und teils für MySQL selbst gegeben wurde. Das Skript support-files/mysql.server im MySQL-Verzeichnis kann dabei als Startskript dienen.
Zusätzlich zum MySQL-Grundpaket, das nur mit dem Kommandozeilen-Client mysql ausgeliefert wird, empfiehlt sich die Installation grafischer Steuertools. Empfehlenswert ist beispielsweise der webbasierte Client phpMyAdmin (Download und Installationsanleitung unter http://www.phpmyadmin.net). Daneben gibt es zwei Programme bei mysql.com: MySQL Administrator ermöglicht die grafische Konfiguration des Servers, während der MySQL Query Browser vor allem dem Erstellen und Durchsuchen von Datenbanken mithilfe von SQL-Abfragen dient.
Für Linux können Sie Binärpakete der beiden Programme herunterladen. Alle anderen Unix-Versionen müssen mit der Quellcode-Distribution vorliebnehmen. Die Binärvarianten können Sie nach dem Entpacken sofort einsetzen; die Quellcode-Distributionen werden mit dem »Automake-Dreisatz« (configure; make; make install) kompiliert und installiert.
Installation unter Windows
Die Download-Seite für den MySQL-Server 5.6 bietet zwei verschiedene Pakete für Windows, je einmal für 32- und für 64-Bit-Systeme: Unter dem Link Windows MSI Installer finden Sie den MySQL-Installer. Windows ZIP Archive ist dagegen ein Paket, das Sie einfach ohne Installation entpacken können (am sinnvollsten nach C:\MySQL), was schneller geht, aber weniger Einstellmöglichkeiten bietet.
Die beste Wahl ist der Standard-Installer. Führen Sie die heruntergeladene MSI-Datei (zurzeit mysql-5.6.12-win32.msi oder mysql-5.6.12-win64.msi) per Doppelklick aus. Anschließend werden auf mehreren Dialogseiten Fragen gestellt, unter anderem nach Installationsumfang und Installationsverzeichnis. Näheres über diesen Installer enthält der Onlineartikel unter http://dev.mysql.com/tech-resources/articles/4.1/installer.html (wie die Nummer in der URL andeutet, wurde er für MySQL 4.1 geschrieben, die erste Version, die mit diesem Installer geliefert wurde).
Zum Schluss der eigentlichen Installation können Sie Configure MySQL Server now wählen, um den MySQL Instance Configuration Wizard aufzurufen. Alternativ finden Sie ihn nachträglich unter MySQL im Startmenü.
In diesem Dialog werden nacheinander folgende Dialogseiten angezeigt:
- Welcome: zeigt eine kurze Information über die MySQL-Konfiguration.
- Konfigurationsdetails: Wählen Sie Detailed Configuration (diese Variante wird hier beschrieben) oder Standard Configuration für weniger Optionen.
- Servertyp: Wählen Sie Developer Machine für einen Arbeitsrechner, auf dem MySQL neben vielen Anwendungsprogrammen ausgeführt wird. Für den Praxiseinsatz können Sie sich zwischen Server Machine (Installation auf einem allgemeinen Serverrechner) oder Dedicated MySQL Server Machine (exklusiver Serverrechner für MySQL) entscheiden.
- Tabellentypen: Normalerweise sollten Sie Multifunctional Database wählen, um einfach zwischen transaktionsorientierten InnoDB- und performanceoptimierten MyISAM-Tabellen wählen zu können. Transactional Database Only optimiert den MySQL-Server für den InnoDB-Support, während Non-Transactional Database ausschließlich MyISAM installiert.
- InnoDB Tablespace Settings. Hier wird das temporäre Verzeichnis für Transaktionsdaten ausgewählt. Stellen Sie sicher, dass Sie die Festplatte oder Partition mit dem meisten freien Platz auswählen; in der Regel geschieht dies automatisch.
- Anzahl der gleichzeitigen Clientverbindungen: Wählen Sie für einen Arbeitsplatzrechner Decision Support (DSS)/OLAP mit maximal 20 Verbindungen. Für einen praxistauglichen Server ist Online Transaction Processing (OLTP) geeignet. Unter Manual Setting · Concurrent Connections können Sie die Höchstzahl der Verbindungen manuell eingeben.
- Um den Datenbankserver über ein Netzwerk zu nutzen (Standard), müssen Sie Enable TCP/IP Networking aktivieren. Der Standard-TCP-Port 3306 ist in der Regel die richtige Wahl, es sei denn, Sie möchten mehrere MySQL-Instanzen auf demselben Rechner betreiben. Beachten Sie gegebenenfalls auch Ihre Firewall-Einstellungen.
- Als Zeichensatz ist in der Regel Standard Character Set (latin1) zu empfehlen – zumindest für die meisten lateinisch geschriebenen europäischen Sprachen. Wenn Sie viel mit internationalen Sprachen arbeiten oder vorwiegend moderne (Web-)Software einsetzen, empfiehlt sich dagegen UTF8. Die dritte Möglichkeit ist die manuelle Auswahl eines Zeichensatzes.
- Damit der MySQL-Server automatisch gestartet wird, sollten Sie auf der nächsten Registerkarte Install As Windows Service wählen. Solange auf demselben Rechner nicht mehrere MySQL-Server-Instanzen ausgeführt werden, ist der vorgeschlagene Dienstname MySQL in Ordnung. Launch the MySQL Server automatically schaltet den üblichen automatischen Start für den Dienst ein.
- Unter Modify Security Settings sollten Sie zunächst ein gutes, das heißt ausreichend langes und nicht im Wörterbuch
vorkommendes Passwort für den MySQL-Administrator Root auswählen. Außerdem empfiehlt es sich, die Einstellung Enable root access from remote machines (Administratorzugriff von entfernten Rechnern aus) zu deaktivieren.
Die Einrichtung eines anonymen, das heißt benutzernamen- und passwortlosen Kontos mithilfe von Create An Anonymous Account ist übrigens nicht zu empfehlen, sofern Sie keine Anwendung benutzen, die es unbedingt benötigt.
- Nachdem Sie alles eingestellt haben, führt Execute die gewünschten Arbeitsschritte durch.
Für die Windows-Versionen von MySQL Administrator und MySQL Query Browser werden übrigens bequeme Binär-Installer angeboten. Die wenigen einfachen Installationsschritte sind im Prinzip selbsterklärend.
12.2.2 Erste Schritte mit dem mysql-Client
Nach der Installation können Sie Ihren MySQL-Datenbankserver am einfachsten über den Kommandozeilen-Client mysql ansprechen. Wenn Sie ein anonymes Konto eingerichtet haben, starten Sie ihn einfach durch die folgende Eingabe:
$ mysql
Andernfalls müssen Sie über die Option -u <Username> den Benutzernamen angeben und mithilfe von -p festlegen, dass das Passwort abgefragt werden soll. Als Beispiel hier der MySQL-Verwaltungsbenutzer root:
$ mysql -u root -p
Enter password: *********
Nachdem die Verbindung zum Datenbankserver hergestellt wurde, sehen Sie den Prompt des mysql-Clients:
mysql>
Nun können Sie spezifische Steuerbefehle wie help (Anzeigen der Hilfe) oder quit (Beenden) eintippen oder aber die im nächsten Abschnitt besprochenen SQL-Abfragen. SQL-Abfragen können beliebig viele Zeilen lang sein (einschließlich ); sie werden erst ausgeführt, wenn Sie sie mit einem Semikolon abschließen.
Bevor Sie mit einer Datenbank arbeiten können, müssen Sie diese auswählen. Dies geschieht mithilfe der Anweisung use <Datenbank>. Beispiel:
mysql> use kaufhaus
Im Auslieferungszustand enthält MySQL nur die Verwaltungsdatenbank mysql sowie die leere Demo-Datenbank test. Bevor Sie also ernsthafte Experimente unternehmen können, müssen Sie eine Datenbank anlegen. Dies geschieht mithilfe einer CREATE DATABASE-Abfrage, die im nächsten Abschnitt erläutert wird.
Praktisch ist außerdem die Möglichkeit, SQL-Anweisungen aus einer externen Textdatei zu importieren. Dazu dient die Anweisung source <Pfad>. Beispiel:
mysql> source test.sql
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.