Table of Contents

Titel

Impressum

Vorwort

1 Datenbankmanagement mit phpMyAdmin

2 phpMyAdmin kennenlernen

3 Typische Aufgaben mit phpMyAdmin bewältigen

4 Import und Export von Daten

4 SQL-Befehle ausführen

5 Operationen

6 phpMyAdmin für Fortgeschrittene

7 Server-Administration

8 phpMyAdmin-Konfigurationsoptionen im Überblick

Anhang A - Anpassung der Basiskonfiguration

Weitere Brain-Media.de-Bücher

Holger Reibold

phpMyAdmin 4.0 kompakt

Alle Rechte vorbehalten. Ohne ausdrückliche, schriftliche Genehmigung des Verlags ist es nicht gestattet, das Buch oder Teile daraus in irgendeiner Form durch Fotokopien oder ein anderes Verfahren zu vervielfältigen oder zu verbreiten. Dasselbe gilt auch für das Recht der öffentlichen Wiedergabe.

Der Verlag macht darauf aufmerksam, dass die genannten Firmen- und Markennamen sowie Produktbezeichnungen in der Regel marken-, patent- oder warenrechtlichem Schutz unterliegen.

Verlag und Autor übernehmen keine Gewähr für die Funktionsfähigkeit beschriebener Verfahren und Standards.

© 2013 Brain-Media.de

Herausgeber: Dr. Holger Reibold

Umschlaggestaltung: Brain-Media.de

Satz: Brain-Media.de

Coverbild: Photocase / pip

ISBN: 978-3-95444-093-1

Vorwort

Wer sich einmal an der Administration eines MySQL-Servers versucht hat, der weiß die Vorzüge von Datenbankmanagern zu schätzen. Sie helfen, typische Aufgaben wie das Anlegen von Datenbanken, das Bearbeiten von Strukturen, die Benutzerverwaltung etc. zu vereinfachen. Ohne entsprechendes Hilfsmittel lassen sich mächtige Datenbestände kaum beherrschen. Der mit Abstand beliebteste Datenbankmanager für den MySQL-Datenbankserver ist phpMyAdmin. Das PHP-basierte Werkzeug erlaubt die Durchführung aller wichtigen Aufgaben über eine komfortable Web-Schnittstelle.

Ich bin phpMyAdmin das erste Mal vor rund 10 Jahren begegnet, als ich mich an die Entwicklung einer PHP-basierten Umgebung machte. Seitdem hat sich viel getan. Apache, MySQL, PHP und darauf aufsetzende PHP-Anwendungen haben ein professionelles Niveau erreicht. Heute hantiere ich fast täglich mit PHP-basierten Anwendungen wie einem Magento-Onlineshop und einem WordPress-Blog. Beim Umgang, dem Aufbau und der Pflege dieser Lösungen ist phpMyAdmin für mich längst ein unverzichtbares Hilfsmittel.

Das vorliegende Buch führt Sie in die Arbeit mit dem Datenbankmanager ein. Es zeigt Ihnen, wie Sie typische Aufgaben im Datenbankalltag bewältigen. Es kann natürlich kein MySQL-Handbuch ersetzen – hier ist man auf zusätzliche Literatur angewiesen. Anhand praxisnaher Beispiele zeige ich Ihnen, wie Sie Datenbanken erzeugen, Tabellen mit Leben füllen, Daten und Strukturen anpassen, Daten exportieren und importieren, wie Sie typische Befehle und Operationen durchführen und wie Sie MySQL-Server administrieren.

Das Highlight: Eine detaillierte Beschreibung der Konfigurationsoptionen.

Viel Vergnügen und Erfolg beim Jonglieren mit MySQL-Datenbank mit dem Datenbankmanager phpMyAdmin wünscht Ihnen

Holger Reibold

(Saarbrücken, August 2013)

1 Datenbankmanagement mit phpMyAdmin

Wenn auch Sie zu den Anwendern, Administratoren oder Entwicklern gehören, deren Web-Anwendungen auf dem Apache-MySQL-PHP-Gespann basieren, dann benötigen Sie ein Werkzeug, mit dem Sie Eingriffe in den MySQL-Server vornehmen können. Gleich, ob Sie einen Blog, einen Online-Shop oder ein Content-Managementsystem einrichten wollen: Immer sind Eingriffe in den Datenbankserver erforderlich. Sie müssen beispielsweise von dem Aufsetzen eines Magento-Shops eine Datenbank anlegen, in der die Shop-Daten gespeichert werden. Wenn Sie sogar Erweiterungen einer PHP-Umgebung planen, benötigen Sie außerdem einen Datenbankmanager.

Nun kommt MySQL zwar mit verschiedenen Tools daher, mit deren Hilfe Sie mit dem Datenbankserver arbeiten könnten, doch die sind alles andere als komfortabel.

Ein erster Blick auf phpMyAdmin 4.0.4 – die Startseite des MySQL-Datenbankmanagers präsentiert Ihnen eine Fülle von Detailinfos.

Das mit Abstand benutzerfreundlichste und leistungsfähigste Werkzeug für die Verwaltung von MySQL-Servern ist phyMyAdmin (http://www.phpmyadmin.net). Nicht nur wenn Sie lokal mit MySQL-Datenbanken hantieren, sondern gerade auch beim Betrieb einer typischen Web-Anwendung macht phpMyAdmin eine hervorragende Figur.

Wie unschwer an seiner Bezeichnung abzulesen ist, ist phpMyAdmin eine PHP-Applikation zur Administration von MySQL-Datenbanken. Mit phpMyAdmin lassen sich MySQL-Datenbanken einfach und schnell per HTTP mit einem Browser ansprechen, ohne auf komplizierte SQL-Befehle zurückgreifen zu müssen. Diesem Buch liegt Version 4.0.4 zu Grunde.

1.1 Die Highlights von phpMyAdmin

Das Tool wird inzwischen von vielen Providern eingesetzt, damit deren Kunden ihre MySQL-Datenbank verwalten können. phpMyAdmin gehört auch zum beliebten XAMPP-Paket, das immer häufiger zum Aufsetzen eines Apache-MySQL-PHP-Perl-Pakets dient. phpMyAdmin bietet eine beeindruckende Funktionalität. Mit dem Tool können Sie – Root-Rechte vorausgesetzt – ganze MySQL-Server administrieren. Natürlich lassen sich auch einzelne Datenbanken steuern. Dazu müssen allerdings Benutzerrechte gezielt gesetzt werden. Der Datenbankmanager unterstützt folgende Aktionen:

· Erzeugen und Löschen von Datenbanken.

· Erzeugen, Kopieren, Löschen, Umbenennen und Bearbeiten von Tabellen.

· Tabellen verwalten.

· Löschen, Editieren und Hinzufügen von Feldern.

· Ausführung von SQL-Statements, auch im Batch-Modus.

· Laden von Text in Tabellen.

· Export von Daten nach CSV, XML und Latex.

· Administration von mehreren Datenbankservern.

· Verwalten von MySQL-Benutzern und Privilegien.

· Erzeugen von PDF-Grafiken des Datenbank-Layouts.

· Suche nach Datenbankinhalten – global oder in spezifischen Abschnitten.

· und, und, und …

Mancher Leser kennt womöglich phpMyAdmin 3.x und hat damit erste Erfahrungen gesammelt. Die aktuelle Version 4.0.x knüpft nahtlos an der Vorgängerversion an, bietet aber einige interessante Verbesserungen.

Die auffälligste Neuerung von phpMyAdmin 4 zeigt sich bereits beim Start des Datenbankmanagers: Er verzichtet auf Frames, die die Navigationsleiste von dem Konfigurationsbereich trennen. Die Funktion Navigations-Frame aktualisieren wurde durch AJAX/Javascript ersetzt. Der Neugestaltung sind auch die <noscript>-Abschnitte zum Opfer gefallen. Außerdem haben die Entwickler den <html>- und <?php>-Mix von Version 3.x bereinigt. In Version 4 wird der generiert HTML-Output an die lib- und include-Dateien übergeben, die wiederum von der Index-Seite oder spezifischen Dateien aufgerufen werden können.

Bereits in Version 3.x gab es einen Synchronisationsmechanismus, der den vollständigen Abgleich von Quell- und Zieldatenbanken erlaubt. Der trägt in phpMyAdmin 4 die Bezeichnung Replikation, bietet mehr Funktionalität und erlaubt das Festlegen von Master- und Slave-Datenbank. Im Unterschied zur Vorgängerversion kann man in Version 4 einen Rechner als Master oder Slave konfigurieren und gezielt Datenbanken fürs Spiegeln auswählen. Auch das Navigieren in Datenbanktabellen wurde in verschiedenen Bereichen überarbeitet und ist nun deutlich konsistenter.

phyMyAdmin kommt immer dann zum Einsatz, wenn Eingriffe in eine MySQL-Datenbank erforderlich sind. Auch das Anlegen von Datenbanken ist mit phpMyAdmin möglich – eine Aktion, die in der Regel beim Umgang mit allen PHP-basierten Anwendungen notwendig ist.

Sie können mit phpMyAdmin aber auch komplexe Dinge angehen, ohne unbedingt ein SQL- und PHP-Profi werden zu müssen. In diesem Buch werden Sie zunächst phpMyAdmin und nach und nach die verschiedensten Einsatz- und Anwendungsmöglichkeiten kennenlernen.

1.2 phpMyAdmin in Betrieb nehmen

Wenn Sie mit phpMyAdmin arbeiten wollen, sind verschiedene Szenarien möglich. So ist es beispielsweise denkbar, dass Ihnen Ihr Provider eine phpMyAdmin-Installation für die Verwaltung Ihrer Datenbanken zur Verfügung stellt. In diesem Fall müssen Sie sich wohl oder übel mit dem zufrieden geben, was Ihnen zur Verfügung steht.

Anders sieht die Situation aus, wenn Sie selbst Herr Ihres Servers sind und diesen administrieren – ob es sich dabei um einen lokalen Server oder einen Rootserver handelt, spielt keine Rolle. In diesem Fall müssen Sie Ihre Server-Umgebung auf die notwendigen Systemvoraussetzungen für den Betrieb vom phpMyAdmin prüfen.

Ihre Umgebung muss folgende Voraussetzungen erfüllen:

- PHP

- Sie benötigen PHP 5.3.0 oder höher samt Session-Unterstützung und Standard-PHP-Library-Erweiterung (SPL).

- Für den Upload von ZIP-Dateien muss die PHP-ZIP-Erweiterung installiert sein.

- Für den sauberen Umgang von mehr-Byte-igen Zeichenfolgen sollten Sie die Erweiterungen mbstring und ctype installiert sein.

- Wenn Sie Cookies verwenden wollen, so empfehlen die Entwickler die Installation der Mcrypt-Erweiterung.

- Sie benötigen GD2-Unterstützung PHP, um Inline-Thumbnails von JPEG-Dateien in deren Originalseitenverhältnis darstellen zu können.

- Sie benötigen libxml-Erweiterung, um XML und OpenDocument-Tabellen importieren zu können.

- Datenbanken

- MySQL 5.0 oder höher

- MariaDB 5.0 oder höher

- Drizzle

- Webbrowser, bei dem die Cookie-Verwendung und die JavaScript-Unterstützung aktiviert sind.

Je nach Kenntnissen und Aufwand, denn man betreiben will und kann, bietet es sich an, ein Komplettpaket wie XAMPP oder WampServer zu verwenden. In diesen Paketen sind alle wichtigen Komponenten einer Apache-MySQL-PHP-Umgebung in einer Lösung gebündelt.

1.2.1 phpMyAdmin installieren

Nachdem Sie die notwendigen Systemvoraussetzungen für die Ausführung von phpMyAdmin geschaffen haben, ist die eigentliche Installation schnell erledigt. Laden Sie sich dazu die neueste Version aus dem Download-Bereich der phpMyAdmin-Website herunter. phpMyAdmin ist dort in verschiedenen Varianten (ZIP, GZ, BZ2 und 7Z) verfügbar. Vermutlich wollen Sie mit der deutschsprachigen Variante arbeiten. Dann verwenden Sie die Version mit dem Zusatz all-languages.

Der Rest ist einfach: Entpacken Sie das Archiv und kopieren Sie es in das Dokumentenverzeichnis Ihres Webservers. Der Einfachheit halber bietet es sich an, das Entpackungsverzeichnis, das beispielsweise die Bezeichnung phpmyadmin-4.0.4-all-languages heißt, einfach in phpmyadmin umzubenennen. Außerdem müssen Sie die Berechtigungen für das Verzeichnis entsprechend Ihrer Anforderungen setzen.

Damit ist phpMyAdmin einsatzbereit und Sie können mit einem Standardbrowser auf den Datenbankmanager zugreifen. Rufen Sie dazu folgende URL auf:

http://hostname_bzw_ip-adresse_ihrese_server/phpmyadmin/

Wenn Sie mit einer fertigen Umgebung wie XAMPP arbeiten, können Sie direkt mit der Arbeit an Ihren Tabellen beginnen, andernfalls müssen Sie phpMyAdmin erst für das Zusammenspiel mit dem Datenbankserver konfigurieren. Dazu können Sie zwei Wege einschlagen:

- Sie bearbeiten die Konfigurationsdatei config.inc.php.

- Sie greifen zum Setup-Assistenten, der Sie bei der Konfiguration unterstützt.

Die Konfigurationsdatei sucht phpMyAdmin standardmäßig in dem gleichen Ordner, in dem Sie auch die Index-Seite index.php finden. Darüber hinaus gibt es noch eine weitere wichtige Datei: layout.inc.php. Mit dieser bestimmen Sie das Layout von phpMyAdmin.

Der phpMyAdmin-Setup-Assistent greift Ihnen beim Einrichten der Umgebung unter die Arme.

1.2.2 phpMyAdmin einrichten

Wir gehen im Folgenden davon aus, dass Sie phpMyAdmin neu einrichten und nicht auf eine bereits eingerichtete Umgebung zurückgreifen, wie das beispielsweise bei einer XAMPP-Installation der Fall wäre.

Nachdem Sie phpMyAdmin auf den Server kopiert haben, müssen Sie es im nächsten Schritt einrichten. Das bedeutet, Sie müssen insbesondere das Zusammenspiel mit dem MySQL-Server einrichten.

Starten Sie einen Standard-Browser und geben Sie folgende URL an:

http://hostnamen_bzw_ip-adresse_des_servers/phpmyadmin/setup/

Es meldet sich der Setup-Assistent, wie ihn voranstehende Abbildung zeigt, der Sie durch die einzelnen Schritte führt. Im linken Bereich werden die notwendigen Schritte angezeigt: Übersicht, Funktionen, SQL-Abfragen, Navigationspanel, Hauptpanel, Importieren und Exportieren.

Zunächst müssen Sie sich vermutlich mit einigen Fehlermeldungen herumschlagen. Im Kopfbereich der ersten Seiten finden Sie ein Auswahlmenü, das Ihnen die Anpassung der Sprache erlaubt. Verwenden Sie der Einfachheit halber am besten die deutschsprachige Benutzerführung.

Außerdem werden Sie – immer abhängig von der jeweiligen Umgebung – mit weiteren Fehlermeldungen konfrontiert. So mahnt das Setup möglicherweise das Fehlen einer Kompressionskomponente, eine unsichere Verbindung und das Erzwingen einer SSL-gesicherten Verbindung an.

In jedem Fall müssen Sie sich mit folgender Fehlermeldung auseinandersetzen:

Laden oder Speichern der Konfiguration fehlgeschlagen

Weitere Hinweise empfehlen in der Regel die Aktivierung der SSL-Option, um sichere Verbindungen zwischen den Clients und phpMyAdmin aufbauen zu können. Sie müssen alle Fehler korrigieren, um das Setup ausführen und beenden zu können. Warnungen sind „nur“ gutgemeinte Hinweise, die sie aber – immer abhängig vom jeweiligen Einsatzbereich – auch ignorieren oder später bearbeiten können.

Verschiedene Fehlermeldungen des phpMyAdmin-Setups warten auf Sie.

Das Setup-Skript sichert die neue Konfigurationsdatei config.inc.php im Verzeichnis config der phpMyAdmin-Installation. Mit hoher Wahrscheinlichkeit existiert dieses Verzeichnis noch nicht in Ihrer Umgebung und muss erst angelegt werden. Erzeugen Sie das Verzeichnis und versehen Sie es mit den notwendigen Lese- und Schreibrechten.

Führen Sie dazu folgende Kommandos aus:

cd phpMyAdmin

mkdir config

chmod 777 config

Wenn Sie eine bestehende Konfiguration in der neuen Umgebung verwenden wollen, ist auch das kein Problem. Kopieren Sie die Konfiguration einfach in die neue phpMyAdmin-Umgebung und versehen Sie diese wieder mit den notwendigen Rechten:

cp config.inc.php config/

chmod o+w config/config.inc.php

Damit ist die Umgebung für das Erstellen eines neuen Servers vorbereitet. Wenn Sie die Rechte des config-Verzeichnisses mit einem FTP-Client anpassen, weisen Sie ihm vollen Lese- und Schreibzugriff zu.

Nach dem Erstellen des config-Verzeichnisses aktualisieren Sie die Setup-Ansicht. Der Warnhinweis, dass ein Sichern der Konfiguration nicht möglich ist, ist verschwunden. Lediglich folgender Hinweise wird noch einblendet:

Ausgeblendete Nachrichten anzeigen (2)

Mit einem Klick auf diesen Link blenden Sie die beiden Hinweise ein, dass eine SSL-Verbindung erzwungen werden sollten und Sie unsichere Verbindungen nutzen.

Jetzt können Sie sich an das Anlegen eines neuen Servers machen.

Nach der Aktualisierung der Setup-Ansicht können Sie die Einrichtung der phpMyAdmin-Umgebung fortsetzen. Bestimmen Sie im Bereich Konfigurationsdatei außerdem die allgemeinen Eigenschaften der Konfigurationsdatei. Dazu stehen Ihnen drei Auswahlmenüs zur Verfügung:

- Voreingestellte Sprache: Hier bestimmen Sie die Standardsprache.

- Voreingestellter Server: Hier den Standardserver.

- Zeilenende: Bestimmen Sie, mit welchen Zeichen der Zeilenumbruch gesteuert wird. Bei Linux-Systemen ist das \n, bei Windows-Rechnern \r\n.

Mit einem Klick auf die Schaltfläche Neuer Server wird die Konfiguration geöffnet. Konkret stehen Ihnen auf der zugehörigen Seite fünf Register für die Konfiguration des Zusammenspiels von phpMyAdmin und MySQL zur Verfügung:

· Grundeinstellungen.

· Authentifizierung.

· Serverkonfiguration.

· Konfígurationsspeicher.

· Änderungen verfolgen.

Sie landen automatisch auf dem Register Grundeinstellungen, auf dem eine Fülle von Einstellungen auf Sie warten. Zu jeder Konfiguration finden Sie am Ende der Konfigurationsbeschreibung einen Fragenzeichen- und einen Info-Button. Ein Klick auf den ersten öffnet die Beschreibung der offiziellen Dokumentation, ein Klick auf den zweiten Button den zugehörigen Wiki-Eintrag.

Die neue Server-Konfiguration entsteht.

Auf dem Register Grundeinstellungen nehmen Sie die allgemeinen Verbindungseinstellungen zum MySQL-Server vor. Wir wollen hier zunächst nur die wichtigsten Einstellungen kurz beschreiben, kommen aber später detailliert auf die verschiedenen Konfigurationen und deren Eintrag in der phpMyAdmin-Konfigurationsdatei zurück.

Die erste wichtige Einstellung ist im Eingabefeld Hostname vorzunehmen. Hier geben Sie den Hostnamen bzw. die IP-Adresse an, unter der der MySQL-Server zu erreichen ist. Wenn Sie MySQL und phpMyAdmin auf dem gleichen System ausführen, können Sie den Eintrag localhost beibehalten.

Sie sollten außerdem die Option Benutze SSL aktivieren, um die Verbindung zwischen phpMyAdmin und dem MySQL-Server zu schützen. Das empfiehlt sich zumindest dann, wenn Sie beide auf unterschiedlichen Rechnern ausführen und der Datenverkehr prinzipiell abgehört werden könnte.

Auf der Registerkarte Authentifizierung empfiehlt sich als Authentifizierungstyp im Auswahlmenü Authenfikationstyp die Verwendung der Option Cookie. Außerdem sollten Sie den Benutzernamen und das Passwort für den Zugriff in den beiden dafür vorgesehenen Eingabefeldern ändern.

Im Bereich Signon-Authenfizierung können Sie eine Session-Bezeichnung sowie die URL für das Ein- und Ausloggen angeben. Mit diesen beiden Feldern können Sie eine alternative URL angeben, zu dem der User beim Einloggen umgeleitet wird bzw. zu der er geführt wird, wenn er sich aus dem System ausloggt. Wichtig ist dabei die Verwendung einer absoluten URL und des Protokolls. Sie können den Einlog-Vorgang beispielsweise auf folgende URL umleiten:

http://www.mein_mysql-server.de/userlogin/login.php

Die Funktionen der Registerkarte Serverkonfiguration erlauben die Anpassung verschiedener erweiterter Einstellungen. Sie können beispielsweise die Ansicht auf Seiten von phpMyAdmin auf bestimmte Datenbanken beschränken. Dazu tragen Sie diese einfach in das Textfeld Nur aufgelistete Datenbank zeigen ein. Über das Eingabefeld Databanken verstecken können Sie bestimmte Datenbanken sogar verstecken.

Die erweiterte Server-Konfiguration.

Mit dem Register Konfigurationsspeicher konfigurieren Sie schließlich die phpMyAdmin-Datenbank, über die Sie Zugriff auf weitere Funktionen haben.

Die Einstellungen der Registerkarte Änderungen verfolgen dienen dem sogenannten Tracking. Damit können Sie Änderungen an Ihren Datenbanken aufzeichnen und später verfolgen. Wir kommen in Kapitel 6.7 auf diese Möglichkeiten zu sprechen.

Um die erste Serverkonfiguration zu sichern, klicken Sie im unteren Dialogbereich auf die Schaltfläche Speichern. phpMyAdmin erzeugt die erste Konfiguration und führt Sie unter Server den wichtigsten Eigenschaften wie Name, Authentifikationstyp und DSN auf.

Die erste Serverkonfiguration ist angelegt.

Das Tolle an dieser Funktion: Sie können quasi beliebig viele Server-Konfigurationen anlegen, wenn Sie nicht nur für einen, sondern für mehrere Shops zuständig sind. Wenn Sie keinen Standard-Server angelegt haben, erfolgt die Auswahl des gewünschten Servers dann über den Einlog-Dialog.

Alle Einstellungen des Setups werden übrigens in der Datei config.inc.php des neu angelegten config-Verzeichnisses abgelegt. Die sieht beispielsweise wie folgt aus:

<?php

/*

* Generated configuration file

* Generated by: phpMyAdmin 4.0.4 setup script

* Date: Wed, 24 Jul 2013 10:55:22 +0200

*/

/* Servers configuration */

$i = 0;

/* Server: localhost [1] */

$i++;

$cfg['Servers'][$i]['verbose'] = '';

$cfg['Servers'][$i]['host'] = 'localhost';

$cfg['Servers'][$i]['port'] = '';

$cfg['Servers'][$i]['socket'] = '';

$cfg['Servers'][$i]['connect_type'] = 'tcp';

$cfg['Servers'][$i]['extension'] = 'mysqli';

$cfg['Servers'][$i]['auth_type'] = 'cookie';

$cfg['Servers'][$i]['user'] = 'admin';

$cfg['Servers'][$i]['password'] = 'geheim';

/* End of servers configuration */

$cfg['UploadDir'] = '';

$cfg['SaveDir'] = '';

$cfg['blowfish_secret'] = '51ef93e6989174.09655042';

$cfg['DefaultLang'] = 'de';

$cfg['ServerDefault'] = 1;

?>

Auf die Bedeutung der verschiedenen Einträge in der Konfigurationsdatei kommen wir später noch detailliert zu sprechen. Weitere Informationen zur Anpassung der Basiskonfiguration finden Sie im Anhang A.

2 phpMyAdmin kennenlernen

Bislang haben Sie phpMyAdmin installiert und für das Zusammenspiel mit einem oder auch mehreren MySQL-Servern konfiguriert. Sie haben auch eine grobe Vorstellung davon, was Sie alles mit dem Datenbankmanager anstellen können und wie die Benutzerschnittstelle aussieht.

phpMyAdmin besitzt eine übersichtlich strukturierte Schnittstelle, über die man alle typischen Aktionen beim Umgang mit Datenbanken steuert. Schauen wir uns die verschiedenen Bereiche näher an.

Die geöffnete Datenbank phpmyadmin.

Wie Sie voranstehender Abbildung entnehmen können, ist die Web-Schnittstelle zweigeteilt: links die Navigationsleiste, rechts die dazugehörigen Einstellungen und Funktionen. Beim ersten Einloggen können Sie die Sprachversion anpassen. Wir gehen im Folgenden davon aus, dass Sie die deutsche Version verwenden.

Die Navigationsleiste.

Widmen wir uns zunächst der Navigationsleiste. Über den Kopf und das zugehörige phpMyAdmin-Logo gelangen Sie zur Startseite der lokalen phpMyAdmin-Installation. Unterhalb finden Sie eine kleine Symbolleiste mit fünf bzw. sechs Icons. Führen Sie den Mauszeiger über das jeweilige Icon, so präsentiert Ihnen phpMyAdmin eine Kurzinfo. Die Links im Einzelnen:

- Startseite: Über dieses Icon gelangen Sie zur Homepage der phpMyAdmin-Installation.

- Abfragefenster: Öffnet das Abfragefenster, über das Sie SQL-Abfragen an die Datenbank übergeben.

- phpMyAdmin-Dokumentation: Ein Klick öffnet die lokale Dokumenta-tion. Sie entspricht dem, was Sie auf der phpMyAdmin-Website finden.

- Dokumentation: Ein Klick auf dieses Icon öffnet die MySQL-Dokumentation der MySQL-Homepage in einem neuen Browser-Fenster.

- Navigations-Frame aktualisieren: Aktualisiert die Ansicht der Navigationleiste.

- Exit: Wenn der Zugang zu phpMyAdmin passwortgeschützt ist und Sie sich eingeloggt haben, können Sie sich über dieses Icon wieder ausloggen.

Unterhalb dieser kleinen Symbolleiste finden Sie das Auswahlmenü Letzte Tabellen. Hier können Sie einfach auf die zuletzt geöffneten Tabellen zugreifen. Darunter werden die Datenbanken, die bereits in der MySQL-Umgebung gespeichert sind. Standardmäßig werden diese in alphabetischer Reihenfolge aufgeführt. Weitere Details wie beispielsweise die Tabellenliste sind verfügbar, wenn Sie die Datenbankhierarchie mit einem Klick auf das Pluszeichen öffnen. Bei Multiserver-Umgebungen ist über die linke Navigationsleiste auch die Auswahl der verschiedenen Server möglich.

Die Navigation in einer Datenbank.

Mit einem Klick auf das Symbol Abfragefenster öffnen Sie ein weiteres Browser-Fenster, das Ihnen die Ausführung verschiedener Aktionen erlaubt. Sie können beispielsweise SQL-Kommandos an den MySQL-Server übergeben, einen Dateiimport ausführen und das SQL-Verlaufsprotokoll abrufen, in dem Sie erfolgreich ausgeführte SQL-Kommandos einsehen und erneut ausführen können.

Das Abfragefenster erlaubt die manuelle Eingabe und Ausführung von SQL-Kommandos.

2.1 Der Arbeitsbereich

Der Inhalt des rechten phpMyAdmin-Arbeitsbereichs ist abhängig von der aktivierten Ansicht. Öffnen Sie die Homepage Ihrer phpMyAdmin-Installation, so präsentiert phpMyAdmin rechts die Menüleiste, über die Sie auf die verschiedenen Funktionsbereiche und Einstellungen zugreifen, darunter verschiedene allgemeine Informationen über die Apache-MySQL-PHP-phpMyAdmin-Umgebung. Oberhalb der Menüleiste wird der aktuelle Server angezeigt. Mit einem Klick auf den Pfeil links der Serverbezeichnung blenden Sie die Navigationsleiste ein und wieder aus.

Die Startseite des Arbeitsbereichs präsentiert Ihnen verschiedene allgemeine Informationen über die Umgebung.

Sie können Sie sowohl die Navigations-, als auch den Arbeitsbereich, das sogenannten Hauptpanel, an Ihre Vorstellungen und Bedürfnisse anpassen. Mit einem Klick auf die Server-Adresse bzw. auf das Home-Symbol gelangen Sie wieder zurück zur typischen Startseite.

Unterhalb der Menüleiste finden Sie fünf Bereiche mit verschiedenen Informationen und Funktionen. Unter Allgemeine Einstellungen können Sie den Zeichensatz für die Verbindung zum MySQL-Datenbankserver anpassen. In der Regel ist hier keine Anpassung erforderlich.

Darunter finden Sie den Bereich Anzeige-Einstellungen. Hier werden die aktuell verwendete Sprachvariante, das Oberflächendesign, die Farbe und die Schriftgröße angezeigt. Bei der Wahl des Designs können Sie sich zwischen Original und pmahomme entscheiden. Mit einem Klick auf Weitere Einstellungen öffnen Sie die phpMyAdmin-Einstellungen.

Der Bereich Datenbank-Server zeigt die Server-relevanten Informationen wie die Server-Version, die Verbindung, den Benutzernamen und den verwendeten Zeichensatz an.

Der Bereich Webserver führt folgende Informationen auf:

· Apache-Version einschließlich der relevanten Apache-Module.

· MySQL-Client-Version.

· PHP-Extension.

Im Bereich phpMyAdmin wird zunächst die Versionsnummer Ihrer Installation angezeigt. In unserem Fall ist das Version 4.0.4. Über den Link Dokumentation rufen Sie die lokale Dokumentation auf. Auch der Zugriff auf das Wiki ist möglich. Schließlich ist der Zugriff auf die phpMyAdmin-Website, den Changelog, CVS-Versionen und die Mailinglisten möglich.

Der rechte Arbeitsbereich weist zwei weitere wichtige Ansichten auf: die Datenbank- und die Tabellenansicht. Die Datenbankansicht öffnet sich immer dann, wenn Sie in der Navigationsleiste eine Datenbank auswählen. Diese Ansicht weist die typischen Details und Funktionen von Datenbanken auf:

- Ansicht bestehender Tabellen, genauer die Strukturansicht.

- Erzeugen neuer Tabellen.

- Registerkarten, um SQL-Befehle auf die Datenbank anzuwenden, Inhalte gezielt zu exportieren etc.

- Ergänzende Detailinformationen wie Anzahl der Tabellen, Einträge, Größe etc.

Die typische Datenbanksicht verrät Ihnen, welche Datenbank auf dem MySQL-Server lagern.

In der Kopfzeile der Datenbankansicht werden außerdem der Server sowie die Datenbankbezeichnung aufgeführt. Mit einem Klick auf einen Datenbankeintrag öffnen Sie die Tabellenansicht. Sie führt die Tabellen auf, die in einer Datenbank enthalten sind.

Neben der Tabellenliste finden Sie Checkboxen, über die Sie Tabellen einzeln auswählen können, auf die bestimmte Aktionen angewendet werden.

Eine typische Tabellenansicht: In der Datenbank cdcol ist lediglich die Tabelles cds enthalten.

Unterhalb der Tabellenliste finden Sie eine weitere wichtige Funktion: Das Eingabefeld Erzeuge Tabelle erlaubt das Erzeugen einer neuen Ablage. Geben Sie dazu einfach eine Bezeichnung in das zugehörige Textfeld ein, legen Sie unter Anzahl der Spalten die Anzahl der Felder fest und bestätigen Sie mit OK.

2.2 Ansichten in phpMyAdmin

In der Datenbankansicht ist außerdem das Hinzufügen eines Datenbankkommentars mit ergänzenden Informationen möglich. Die Datenbank kann eine andere Bezeichnung erhalten. Wie nahezu alle Ansichten in phpMyAdmin kann auch die Datenbankansicht über die Konfigurationsdatei angepasst werden.

Die Tabellenansicht öffnen Sie, indem Sie eine Datenbank und eine Tabelle in der Navigationsleiste öffnen. Alternativ wählen Sie in der Datenbankansicht eine Tabelle auf dem Register Struktur aus.

Die typische Strukturansicht.

Zu den einzelnen Tabellen werden folgende Details aufgeführt:

· Feldbezeichnung

· Typ

· Kollation

· Attribute

· Null

· Standort

· Extra

In der Spalte Aktion können Sie typische Tabellenaktionen durchführen. Unterhalb der Tabellenliste finden Sie weitere Detailinformationen zu Indizes, Speicherplatzverbrauch sowie eine Zeilenstatistik. Um auf diese Informationen zuzugreifen, klicken Sie auf den Link Details.

Die Detailinformationen zu Ihren Tabellen.

Außerdem bietet phpMyAdmin die so genannte Server-Ansicht. Sie ist nur dann verfügbar, wenn Sie mehrere MySQL-Server mit phpMyAdmin verwalten.

3 Typische Aufgaben mit phpMyAdmin bewältigen

Nachdem Sie sich mit der Benutzerschnittstelle und insbesondere mit den verschiedenen Ansichten von phpMyAdmin vertraut gemacht haben, können Sie sich als Nächstes einen Überblick über typische Aufgaben wie das Erzeugen von Datenbanken oder das Einfügen neuer Daten verschaffen. Im weiteren Verlauf kommen wir dann auf fortgeschrittene Aktionen wie das Bearbeiten der Datenbankstruktur, das Importieren von Datenbeständen etc. zu sprechen.

3.1 Datenbank erstellen

Schauen wir uns also an, wie Sie eine erste Datenbank erzeugen, wie Sie diese mit Daten füllen und wie Sie sich in dem Datenbestand bewegen. Bevor Sie die folgenden Aktionen durchführen können, muss sichergestellt sein, dass Sie über die notwendige CREATE-Berechtigung verfügen. Dabei sind prinzipiell verschiedene Szenarien denkbar:

- Im einfachsten Fall ist bereits eine Datenbank eingerichtet, an der Sie erste Erfahrungen sammeln können. Entsprechende Berechtigungen müssen, wie bereits erwähnt, gesetzt sein.

- Das zweite denkbare Szenario erlaubt Ihnen das Erstellen einer neuen Datenbank, an der Sie den Umgang mit phpMyAdmin erlernen können.

- Schließlich ist es denkbar, dass Sie den Datenbankserver mit anderen Anwendern gemeinsam nutzen und für den jeweiligen Account eine Datenbank erzeugen können.

Wir gehen im Folgenden davon aus, dass Sie die erforderlichen Rechte für das Erzeugen einer Datenbank besitzen. Das Erzeugen einer neuen Datenbank ist recht einfach. Öffnen Sie die Datenbankübersicht Ihrer phpMyAdmin-Installation und geben Sie in das Eingabefeld Neue Datenbank anlegen die gewünschte Bezeichnung ein. Dann klicken Sie auf die Schaltfläche Anlegen. Ein Fehler tritt auf, wenn die Datenbank bereits existiert.

Für das Verständnis ist es sicherlich interessant, dass Datenbanken in MySQL als Verzeichnisse implementiert sind, die Dateien enthalten, die den Tabellen in der Datenbank entsprechen. Weil es keine Tabellen in einer Datenbank gibt, wenn diese erstmalig erzeugt wird, erzeugt der CREATE DATABASE-Befehl nur lediglich ein leeres Verzeichnis unter dem MySQL-Daten-Verzeichnis.

Eine neue Datenbank entsteht.

Nach dem Klick auf Anlegen landen Sie in der Datenbankübersicht, über die Sie die Datenbank dann mit Leben füllen. In der Navigationsleiste links wird die aktuell geöffnete Datenbank anzeigt. In der Detailansicht werden wie gewohnt zunächst der Server und die Datenbankbezeichnung aufgeführt. Außerdem gibt phpMyAdmin eine Bestätigung aus, dass eine Datenbank erzeugt wurde und welcher Befehl hierfür verwendet wurde.

Der aufgeführte SQL-Befehl lautet:

CREATE DATABASE `neueDatenbank`

Der zugehörige PHP-Befehl entsprechend:

$sql = 'CREATE DATABASE `neueDatenbank`';

Die Ansicht dieser Informationen wird über den Schalter $cfg['ShowSQL'] aktiviert. Für SQL-Einsteiger sind diese Informationen ein guter Weg, SQL zu erlernen.

Ihre neue Datenbank besitzt noch keine Tabellen. Um die Datenbank mit Inhalten zu füllen, müssen Sie eine erste Tabelle erzeugen. Öffnen Sie die Datenbank in der Datenbankliste mit einem Klick. Das Anlegen einer Tabelle erfolgt über das Eingabefeld Erzeuge Tabelle. In das Feld geben Sie die Bezeichnung sowie die Anzahl der Spalten ein.

Die erste Tabelle in der neuen Datenbank wird angelegt.

Wir legen im Folgenden eine Datenbank mit Softwareprodukten an, die folgende Informationen verwaltet:

· Produktname.

· Hersteller.

· Produktkategorie.

· Preis.

Für die ersten Gehversuche ist es sicherlich nicht erforderlich, dass das Datenbankdesign bis ins letzte Detail ausgetüftelt ist. Wichtiger sind vielmehr die Herangehensweise und die praktische Umsetzung. Erweiterungen sind später immer noch möglich. Entsprechend diesem Beispiel bezeichnen wir die Tabelle mit Software, geben vier Felder an und bestätigen den Vorgang mit OK.

Eine erste Tabelle mit der Bezeichnung Software und vier Feldern ist entstanden.

In der Kopfzeile zeigt phpMyAdmin wieder den Server, die Datenbank und nun auch die Tabellenbezeichnung der gerade angelegten Tabelle ein. Da wir vier Felder gewählt haben, zeigt die Tabellenansicht nun vier Zeilen an, die mit verschiedenen Einstellungen versehen werden können. Es sind über ein Dutzend Einstellungen vorgesehen, über die Sie die Inhalte und weitere Eigenschaften spezifizieren.

Unter Feld geben Sie zunächst die Feldbezeichnung an. Wir verwenden hier die Feldbezeichnungen Produktname, Hersteller, Kategorie und Preis. Unter Typ müssen Sie den Datentyp festlegen, der für das jeweilige Feld zulässig ist.

Es sind über zwanzig Typen zulässig. Man unterscheidet zwischen numerischen Angaben, Zeit- und Datumsangaben sowie Zeichenfolgen. Die wichtigsten fasst nachstehende Tabelle zusammen:

Typ - </td>

VARCHAR - Zeichenkette mit variablen Zeichen.

TEXT - Typischer Text.

DATE - Typische Datumsangabe. Es wird der Datumsbereich von 1000-01-01 bis 9999-12-31 unterstützt. MySQL zeigt DATE-Werte im Format YYYY-MM-DD an.

INT - Ein normaler Integer-Wert, der zwischen -2147483648 und 2147483647 liegen darf.

FLOAT - Fließkommawert.

DECIMAL - Dezimalwert.

TIME - Zeitangabe, die zwischen 838:59:59 und 838:59:59 liegen kann. MySQL zeigt TIME-Werte im Format HH:MM:SS an.

ENUM - Enumeration, wobei einer der angegebenen Werte aus der Menge {wert1, wert2, wert3, …, wertx} verwendet wird.

BINARY - Speichert binäre Informationen.

Eine genaue Beschreibung ist über die MySQL-Website verfügbar. Um die zugehörigen Informationen abzurufen, klicken Sie in der Kopfzeile auf das Fragezeichen neben Typ. In unserem Beispiel verwenden wir für Produktname, Hersteller und Produktkategorie den Typ VARCHAR. Dieser ist sehr flexibel und unterstützt auch die Kombination aus Zeichen und Buchstaben.

Eine weitere wichtige Einstellung nehmen Sie über die Spalte Länge vor. Hier legen Sie die maximal zulässige Zeichenlänge fest. In unserem Beispiel verwenden wir die Längen 100, 100, 50 und 10. Es folgen, wie bereits erwähnt, weitere Optionen und Schalter. Wir wollen uns bei diesem Beispiel mit den Ersten begnügen und bestätigen mit OK. Die zugehörigen SQL-Befehle lauten wie folgt:

CREATE TABLE `Software` ()

`Produktname` VARCHAR( 100 ) NOT NULL ,

`Hersteller` VARCHAR( 100 ) NOT NULL ,

`Produktkategorie ` VARCHAR( 50 ) NOT NULL ,

`Preis` INT( 10 ) NOT NULL

Nachdem die ersten Felder mit den zugehörigen Einstellungen erzeugt sind und Sie diese Tabellenkonfiguration mit OK bestätigt haben, präsentiert sich Ihnen etwa das Bild, das folgende Abbildung zeigt.

Eine erste Tabelle mit den erzeugten Feldern.

Dem aufmerksamen Beobachter wird nicht entgangen sein, dass in nachstehender Abbildung die Feldbezeichnung Produktkategorie unterstrichen ist, während die anderen Feldbezeichnungen keine vergleichbare Markierung aufweisen. Der Grund: Bei Produktkategorie handelt es sich um einen so genannten Primärschlüssel.

3.2 Tabellendetails definieren

Der Primärschlüssel ist ein Index, also eine zusätzliche Spalte, die einem Datensatz einen eindeutigen Wert zuordnet. In einer großen Datenbank kann es stets vorkommen, dass in mindestens einer Spalte eines Datensatzes der Wert identisch ist. An einem Beispiel wird die Problematik deutlich. Bei Adressdatenbanken ist es durchaus nicht ungewöhnlich, dass es mehrere Familien Müller im gleichen Hochhaus gibt. Da in einem solchen Fall Namen und Adressen in der Tabelle gleich wären, läge ein doppelter Eintrag vor.

Um dieses Problem zu lösen, greifen Sie zum sogenannten Primärschlüssel. Der Primärschlüssel bezeichnet Attribute (Spalten) einer Relation (Tabelle), die einen Datensatz dieser Relation eindeutig identifizieren. Meist ist dies nur ein Attribut. Ein Wert dieses Attributes kann nur einmal vorkommen.

Ein Primärschlüssel kann auch aus der Kombination mehrerer Attribute bestehen, wenn diese gemeinsam jeden Satz eindeutig identifizieren. Dies ist dann ein sogenannter kombinierter Primärschlüssel oder auch Verbundschlüssel. Die Wahl der Attribute für den Schlüssel wird so vorgenommen, dass die Attributkombination minimal identifizierend ist, d. h., sie darf nicht mehr Attribute enthalten, als nötig sind, um sie eindeutig zu machen.

Die zugehörigen Einstellungen finden Sie weiter rechts von den jeweiligen Feldeinstellungen. In unserem Fall ist es beispielsweise sinnvoll, den Produktnamen als Primärschlüssel zu kennzeichnen.

Wenn Sie den Primärschlüssel gesetzt haben, wird der zugehörige Eintrag in der Tabellenübersicht unterstrichen gekennzeichnet. Wollen Sie den Primärschlüssel einer anderen Tabelle zuweisen, klicken Sie einfach in der jeweiligen Zeile unter Aktion auf die Schaltfläche Primärschlüssel. phpMyAdmin gibt einen Hinweis aus, dass der Schlüssel neu gesetzt wird.

Als Nächstes gilt es, die zuvor erzeugte Tabelle mit Daten zu füllen. Dazu wechseln Sie zum Register Einfügen. Dort stehen Ihnen standardmäßig zwei Eingabeblöcke zur Verfügung, über die Sie die Datenbank manuell mit Daten füttern können.

Dass es sich um zwei Blöcke handelt, liegt an der Standardeinstellung der Konfigurationsdatei. Die für diese Einstellung zuständige Option $cfg['InsertRow'] ist standardmäßig auf 2 gesetzt.

Das Einfügen-Formular dient dem manuellen Füttern der Datenbank.

Unter Wert füttern Sie die Tabelle mit den entsprechenden Informationen und klicken abschließend auf OK. Im unteren Dialogbereich können Sie außerdem wählen, ob Sie mit der Eingabe weiterer Datensätze fortfahren wollen. Anschließend landen Sie wieder in der Tabellenübersicht, in der das ausgeführte Kommando sowie die Tabellen aufgeführt werden.

Die Eingabefelder des Einfügen-Dialogs sind standardmäßig zweizeilig. Das ist nicht immer sinnvoll, denn gelegentlich will man mehrzeilige Inhalte in der Tabelle hinterlegen. Glücklicherweise lassen sich diese Einstellungen bearbeiten. Öffnen Sie die phpMyAdmin-Konfigurationsdatei und passen Sie diese entsprechend nachfolgendem Beispiel an:

$cfg['CharTextareaCols']  = 50

$cfg['CharTextareaRows']  = 3

Schon hat man ein Textfeld, das 50 Zeichen breit und 3 Zeichen hoch ist. Diese Einstellungen wirken sich auf alle CHAR- und VARCHAR-Felder aus.

Die eingefügten Daten können Sie über das Register Anzeigen abrufen. Wie Sie nachstehender Abbildung entnehmen können, werden die Einträge listenförmig aufgeführt.

Über das Register Anzeigen können Sie die gespeicherten Daten einsehen.

Die Anzahl der Datensätze in der Ansicht können Sie über die Einstellungen Zeige anpassen. Standardmäßig werden die Datensätze untereinander aufgeführt. Auch die horizontale und nebeneinander angeordnete Ansicht steht zur Verfügung. Über die Datensatzliste können Sie auch neue Einträge erzeugen.

Handelt es sich um sehr aufwändige Datensätze, so erlaubt die Anzeigen-Ansicht auch das einfache Blättern zwischen den Übersichten. Bei mehreren Datensätzen steht außerdem eine Sortierfunktion zur Verfügung. Um einen Datensatz zu bearbeiten, klicken Sie auf das Stift-Symbol, das den Eintrag editiert. Entsprechend gehen Sie beim Löschen vor. Außerdem stehen Druck- und Exportfunktionen im Browse-Modus zur Verfügung.

Wenn Sie den Mauszeiger über die Datensatzliste führen, so stellen Sie fest, dass phpMyAdmin die Zeilen abhängig von der durchführten Aktion mit verschiedenen Farben kennzeichnet. Führen Sie den Zeiger über einen Datensatz, so wird dieser blau hinterlegt. Das sorgt für mehr Benutzerfreundlichkeit und auch für mehr Sicherheit, da Sie immer wissen, was gerade geschieht.

Da die voreingestellten Farben nicht jedermanns Sache sind, können Sie diese Einstellungen wieder über die Konfigurationsdatei layout.inc.php (Sie finden sie im Ordner Themes) anpassen. Die zugehörigen Einstellungen sind:

$cfg['BrowsePointerColor']

$cfg['BrowseMarkerColor']

Damit das farbliche Hervorheben funktioniert, muss die Option $cfg['BrowsePointerEnable'] auf TRUE gesetzt sein, wie es standardmäßig der Fall ist.

Das unmittelbare Bearbeiten von Tabelleneinträgen.

Die Einfügen-Ansicht hat eine weitere tolle Eigenschaft zu bieten: Sie können bestehende Einträge unmittelbar in das Tabellenübersicht bearbeiten. Dazu klicken Sie doppelt in die betreffende Zelle, um diese in den Bearbeitungsmodus zu versetzen. Nehmen Sie die gewünschten Änderungen vor und klicken Sie außerhalb der Tabelle, um die Änderung zu übernehmen.

In der Praxis erweitert man eine bestehende Datenbankstruktur oft mit zusätzlichen Tabellen. Wir wollen entsprechend unserem Beispiel die Informationen des Herstellers verfeinern und erzeugen dazu eine Tabelle mit Herstellerdetails.

Dazu öffnen Sie die Datenbankübersicht von neueDatenbank, bezeichnen die neue Tabelle in der Datenbank mit Hersteller und weisen ihr zehn Felder zu.

Eine neue Tabelle mit herstellerspezifischen Einstellungen entsteht.

Nach dem Bestätigen mit OK landen Sie in der Tabellenansicht, in der Sie entsprechend obiger Beschreibung die Tabellenfelder, die Typen, Feldlängen etc. definieren. So könnte man in unserem Beispiel folgende Felder einführen: Firmenname, Straße, Postleitzahl, Stadt, Land, Telefon, Fax, Web, E-Mail und Ansprechpartner. Natürlich sind auch hier weitere Verfeinerungen möglich.

Die Details für die Hersteller-Tabelle werden ausgearbeitet.

Auch hier können Sie wieder Kommentare, den Tabellentyp und die Sortierung festgelegen. Nach dem Speichern der Feldeinstellungen landen Sie wieder in der Tabellenübersicht, wo die durchgeführten Aktionen sowie die Tabellendetails angezeigt werden. Wenn Sie nun in die Anzeigenansicht wechseln, können Sie die Tabelle mit neuen Daten füttern.

3.3 Daten und Strukturen anpassen

Einer der zentralen Vorzüge von Datenbanken ist, dass sich Datenbestände einfach aktualisieren und erweitern lassen und diese aktualisierten Informationen unterschiedlichen Mechanismen wie beispielsweise Content-Managementsystemen zur Verfügung stellen kann, durch die sie weiter verarbeitet oder für die Darstellungen aufbereitet werden.

In der Praxis müssen Daten bearbeitet, gelöscht und ergänzt werden. Schauen wir uns also an, wie Sie Daten mithilfe von phpMyAdmin im Datenbankserver anpassen. Um Tabellen zu bearbeiten, öffnen Sie diese und wechseln Sie in den Ansichtsmodus. Über das Stiftsymbol können Sie eine Tabelle editieren, über das Löschen-Symbol können Sie sie löschen. Die Position der Icons wird über folgende Konfigurationsoptionen bestimmt:

$cfg['PropertiesIconic'] = TRUE

$cfg['ModifyDeleteAtLeft'] = TRUE

$cfg['ModifyDeleteAtRight'] = FALSE

Für die Option PropertiesIconic können Sie die Werte TRUE, FALSE und BOTH setzen. Verwenden Sie FALSE, werden die Editier- und Löschfunktionen als Links angezeigt. BOTH zeigt die Icons und den Text an.

Klicken Sie auf das Editier-Symbol, öffnet sich der in nachstehender Abbildung dargestellte Dialog. Dieser ist recht flexibel ausgelegt. Hier können Sie nicht nur die bestehenden Werte und Funktionen bearbeiten, sondern die geänderten Werte auch als neuen Datensatz speichern – sofern das gewünscht ist. Aktivieren Sie hierzu die Option Als neuen Datensatz speichern.

Das Editieren eines Tabelleneintrags.

Unterhalb der Tabellenreihen finden Sie eine weitere wichtige Funktion, mit der Sie verschiedene Befehle alle Einträge auf einmal anwenden können. Klicken Sie hierzu auf Alle auswählen und wählen Sie dann aus dem Auswahlmenü die gewünschte Funktion aus, beispielsweise das Löschen, Drucken oder Exportieren.

Wie Sie obiger Abbildung sehr schön entnehmen können, erlaubt der Editierdialog auch die Verwendung von Funktionen, die auf Felder angewendet werden können. Diese Funktionen werden auf die Zeichenketten angewendet, die Sie in das Textfeld Wert eingeben.

Insgesamt stehen Ihnen mehrere Duzend Funktionen zur Verfügung. Die wichtigsten sind in nachstehender Tabelle zusammengefasst (Details zu allen übrigen Funktionen finden Sie in der MySQL-Dokumentation unter http://dev.mysql.com/doc/):

Funktion - Beschreibung

ASCII (zeichenkette) - Das Editieren eines Tabelleneintrags. Diese Funktion gibt den ASCII-Code-Wert des äußersten linken Zeichens der Zeichenkette zeichenkette zurück.

CHAR(N,...) - Interpretiert die Argumente als Ganz-zahlen und gibt eine Zeichenkette zurück, die aus den Zeichen besteht, die durch die ASCII-Code-Werte dieser Ganzzahlen gegeben sind.

SOUNDEX (zeichenkette) - Gibt eine Soundex-Zeichenkette von zeichenkette zurück. Zwei Zeichenketten, die fast gleich klingen, sollten identische Soundex-Zeichenketten haben. Eine Standard-Soundex-Zeichenkette ist 4 Zeichen lang, aber die SOUNDEX()-Funktion gibt eine beliebig lange Zeichenkette zurück.

LOWER (zeichenkette) - Diese Funktion gibt die Zeichenkette zeichenkette zurück, bei der alle Zeichen in Kleinschreibung gemäß dem aktuellen Zeichensatz-Mapping (Vorgabe ist ISO-8859-1 Latin1) umgewandelt wurden. Aus SOFTWARE-schmiede wird dann software-schmiede.

UCASE - Diese Funktion gibt die Zeichenkette zeichenkette zurück, bei der alle Zeichen in Großschreibung gemäß dem aktuellen Zeichensatz-Mapping umgewandelt wurden. Aus firma wird dann FIRMA.

PASSWORD (zeichenkette) - Diese Funktion berechnet eine Passwort-Zeichenkette aus dem Klartext-Passwort zeichenkette. Diese wird eingesetzt, um MySQL-Passwörter zum Speichern in der Password-Spalte der user-Berechtigungstabelle zu verschlüsseln.

MD5 (zeichenkette) - Diese Funktion berechnet eine MD5-Prüfsumme für die Zeichenkette. Der Wert wird als eine 32 Stellen lange hexadezimale Zahl zurückgegeben.

ENCRYPT (zeichenkette[,salt]) - Diese Funktion verschlüsselt zeichenkette unter Verwendung des Unix-crypt()-Systemaufrufs. Das salt-Argument sollte eine Zeichenkette mit zwei Zeichen sein.

LAST_INSERT_ID ([ausdruck]) - Diese Funktion gibt den letzten automatisch erzeugten Wert zurück, der in eine AUTO_INCREMENT-Spalte eingefügt wurde.

USER() - Gibt den aktuellen MySQL-Benutzernamen zurück.

CONCAT (zeichenkette1,zeichenkette2,...) - Diese Funktion gibt die Zeichenkette zurück, die durch die Verkettung der Argumente entsteht. Gibt NULL zurück, wenn ein Argument NULL ist. Die Funktion unterstützt auch mehr als zwei Argumente.

Die Verfügbarkeit der Befehle wird ebenfalls über die phpMyAdmin-Konfigurationsdatei gesteuert. Sie können diese gezielt mit folgendem Abschnitt einschränken:

$cfg['RestrictFunctions'] = array(

'FUNC_CHAR'   => array(

'ASCII',

'CHAR',

'SOUNDEX',

'LCASE',

'UCASE',

'PASSWORD',

'MD5',

'SHA1',

'ENCRYPT',

'LAST_INSERT_ID',

'USER',

'CONCAT'

),

Die Auswahl von Funktionen, die Sie anwenden können.

Neben dem Bearbeiten von Datensätzen unterstützt phpMyAdmin auch verschiedene Löschvorgänge, insbesondere das Löschen von

· einzelnen Reihen in einer Tabelle,

· mehreren Reihen in einer Tabelle,

· allen Reihen in einer Tabelle und

· allen Reihen in mehreren Tabellen.

Vor dem endgültigen Löschvorgang erfolgt eine Sicherheitsabfrage, ob die Daten tatsächlich entfernt werden sollen.

Die drei erstgenannten Aktionen sind recht einfach durchzuführen. Dazu markieren Sie einfach eine einzelne, mehrere oder alle Datenreihen und führen dann den Befehl Löschen aus. phpMyAdmin fragt sicherheitshalber nach, ob die angegebene(n) Reihe(n) tatsächlich gelöscht werden soll(en). Den Löschvorgang schließen Sie mit einem Klick auf OK ab.

Um alle Reihen aus mehreren Tabellen zu löschen, wechseln Sie zur Datenbankansicht, markieren dort die gewünschten Tabellen und führen dann aus dem Auswahlmenü die Funktion Löschen aus.

So einfach ist das Löschen einer Tabelle: Markieren und aus dem Auswahlmenü den Löschen-Befehl verwenden.

Wenn Sie ganze Tabellen löschen, klicken Sie in der oberen Symbolleiste auf Löschen. Natürlich lassen sich auch ganze Datenbanken löschen. Dazu wechseln Sie zur Datenbank-Übersicht, markieren die zu löschende Datenbank und klicken im unteren Dialogbereich auf die Schaltfläche Löschen.

3.3.1 Tabellenstruktur bearbeiten

Eine weitere wichtige Anforderung an moderne Datenbankmanagementsysteme ist, dass sie die Bearbeitung der Datenbankstruktur, genauer der Tabellenstruktur erlauben. Auch für diesen Aufgabenbereich ist phpMyAdmin gerüstet. Ein wichtiges Hilfsmittel für die Bearbeitung der Tabellenstruktur ist die Strukturansicht. Auf diese Ansicht greifen Sie zu, in dem Sie über die Navigationsleiste die gewünschte Tabelle auswählen und dann im Arbeitsbereich auf Struktur klicken.

Die Strukturansicht der erzeugten Tabelle erlaubt die Umstrukturierung.

Anhand eines Beispiels wird deutlich, wie Sie in der Praxis bei der Umstrukturierung und beim Ausbau vorgehen – und warum das sinnvoll ist. Dazu kehren wir zur oben erzeugten Tabelle Software zurück und stellen uns vor, dass für die Software weitere Informationen wie beispielsweise eine Beschreibung oder die verfügbaren Sprachversionen in der Datenbank aufgeführt werden sollen.

Um eine oder auch mehrere neue Zeilen einzufügen, geben Sie unter Spalte(n) hinzufügen die gewünschte Anzahl an. phpMyAdmin geht standardmäßig davon aus, dass die neuen Zeilen am Ende der Tabelle angefügt werden. Daher ist auch die Option An das Ende der Tabelle aktiv.

Soll die neue Zeile an den Anfang gesetzt werden, so aktivieren Sie die Option An den Anfang der Tabelle. Außerdem können Sie die neue Zeile über das Auswahlmenü Nach an eine beliebig zu bestimmende Position setzen. Die neue Zeile wird durch einen Klick auf OK erzeugt und an die gewünschte Position gesetzt.

Sollen die neuen Felder nicht untereinander, sondern nebeneinander angeordnet werden, so muss einmal mehr die phpMyAdmin-Konfigurationsdatei angepasst werden. Dort finden Sie die beiden relevanten Einstellungen:

$cfg['DefaultDisplay'] = 'horizontal'

$cfg['DefaultPropDisplay'] = 'horizontal'

Die obere Option ist für die allgemeine Darstellung der Tabellenzeilen zuständig, die untere bestimmt die Anordnung der Zeilen, die geändert bzw. neu hinzugefügt werden.

Sollen neue bzw. zu ändernde Zeilen nebeneinander angeordnet werden, so setzen Sie den Wert auf vertical.

3.3.2 Mit Text arbeiten

In Datenbanken werden nicht nur kurze Daten wie beispielsweise Kontaktinformationen verwaltet, sondern oft auch Produkt- oder Servicebeschreibung. Da es sich bei Textelementen oftmals um mehr oder minder aufwändige Textbausteine handelt, sollten diese auch in den Datenbankentwurf und die Struktur einfließen.

Wir wollen an unser Beispiel anknüpfen und erzeugen in der Tabelle Software das Feld Produktbeschreibung. Wichtig dabei: Wählen Sie als Feldtyp die Option Text aus. Über die phpMyAdmin-Konfigurationsdatei können Sie das Layout des Eingabefeldes anpassen.

Das erweiterte Textfeld vereinfacht die Eingabe größerer Textbausteine.

Nachdem Sie das neue Textfeld erzeugt haben, wechseln Sie in den Eingabemodus. Hier präsentiert sich Ihnen ein Eingabefeld entsprechend obiger Abbildung. Die Größe des Textfelds wird in der phpMyAdmin-Konfigurationsdatei mit folgender Einstellung definiert:

$cfg['TextareaCols']        = 40

$cfg['TextareaRows']        = 7

Das bedeutet, dass ein Textfeld 40 Zeichen breit und 7 Zeilen hoch ist. Sollten diese Voreinstellungen nicht den jeweiligen Anforderungen entsprechen, so können Sie sie beliebig anpassen. Geht der Text über den vorgegebenen Platz hinaus, ist er über die Scroll-Leiste verfügbar. Die phpMyAdmin-Konfigurationsdatei unterstützt einen weiteren Schalter für die Konfiguration von Textfeldern:

$cfg['LongtextDoubleTextarea'] = TRUE

Dieser sorgt für eine Doppelung der Textfeldgröße für Langtextfelder. Natürlich sollten Sie die erzeugten Textfelder auch nutzen und über die Einfügen-Ansicht füllen.

Ein neues Feld als Ablage für Binärdaten entsteht.

3.3.3 Binärdaten verwalten

Sie können in einer Datenbank natürlich nicht nur ACSII-basierte Daten, sondern auch binäre Daten verwalten. Konkret können Sie in MySQL beispielsweise Grafiken, Programme, Musikdateien etc. in der Ablage hinterlegen. Für die Verwaltung von Binärdaten ist die Einführung eines entsprechenden Feldes vom Typ BLOB (Binary Large Object) erforderlich. Ein BLOB ist ein großes Binärobjekt, das eine variable Menge von Daten enthalten kann. Man unterscheidet zwischen vier BLOB-Typen:

· TINYBLOB

· BLOB

· MEDIUMBLOB

· LONGBLOB

Diese unterscheiden sich nur hinsichtlich der maximalen Länge der Werte, die sie aufnehmen können. Wir wollen in unserer Datenbank zwei Felder einführen, die binäre Daten verwalten: Screenshot und Programmcode. Nach dem Speichern sind die beiden neuen Felder verfügbar.

Wechseln Sie nun zur jeweiligen Tabelle und zur Strukturansicht und fügen Sie entsprechend obiger Beschreibung ein neues Feld hinzu, in dem Sie in das Eingabefeld Felder hinzufügen den Wert 1 eingeben und die Position bestimmen. Klicken Sie auf OK und weisen Sie dann dem neuen Feld die Bezeichnung Screenshot zu. Entsprechend gehen Sie mit dem Feld Programmcode vor.

Die beiden neuen BLOB-Felder dienen als Ablage für binäre Daten.

3.3.4 ENUM- und SET-Typ

Wenn es darum geht, Datenbanktabellen mit Informationen zu füttern, sind zwei weitere Typen von besonderer Bedeutung: ENUM und SET. Beide Typen dienen dazu, eine Liste möglicher Werte zu repräsentieren. Der Unterschied zwischen beiden: Während man beim ENUM-Typ lediglich einen Wert aus einer Liste vordefinierter Werte wählen kann, erlaubt SET die Verwendung mehrerer Werte in einer Zelle.

Etwas genauer: Ein ENUM ist ein Zeichenkettenobjekt, dessen Wert normalerweise aus einer Liste zulässiger Werte ausgesucht wird, die explizit bei der Spaltenspezifizierung während der Tabellenerzeugung aufgezählt werden. Der Wert kann unter bestimmten Umständen auch eine leere Zeichenkette oder NULL sein.

Ein ENUM-Feld entsteht.

Ein SET ist ebenfalls ein Zeichenkettenobjekt, das 0 oder mehrere Werte haben kann, wovon jedes aus einer Auflistung zulässiger Werte stammen muss, die bei der Tabellenerzeugung festgelegt wurden. SET-Spaltenwerte, die aus mehrfachen SET-Elementen bestehen, werden angegeben, indem die Elemente durch Kommas getrennt werden. SET-Elemente dürfen selbst keine Kommas enthalten. Eine Spalte, die z. B. als SET("eins", "zwei") NOT NULL festgelegt wurde, kann folgende Werte haben:

""

"eins"

"zwei"

"eins,zwei"

Wichtig ist außerdem, dass SET maximal 64 unterschiedliche Elemente besitzen kann.

Anhand eines Beispiels wird der Einsatz des Feldtyps deutlich. Dazu wechseln Sie wieder in die Tabellenansicht der Tabelle Software und erzeugen ein neues Feld. Dieses bezeichnen Sie mit Lizenz, wählen als Feldtyp ENUM und geben als Wert folgendes an:

'GPL', 'Kommerziell', 'Sonstige'

Über das Register Einfügen kann nun für jedes Softwareprodukt die zutreffende Lizenz aus dem Auswahlmenü ausgewählt werden.

Abschließend erzeugen Sie ein neues Feld mit einem Klick auf Speichern. Dann wechseln Sie zum Einfügen-Register. Dort finden Sie in der Zeile Lizenz das Auswahlmenü mit den drei Optionen GPL, Kommerziell und Sonstige.

Bei der ENUM-Auswahlliste können Sie wie oben beschrieben, lediglich einen Wert zuordnen. Anders ist das bei der SET-Variante. Hier können Sie über ein Auswahlmenü mehrere Einträge markieren.

3.3.5 Umgang mit Zeitwerten

Mithilfe von phpMyAdmin können Sie in einer MySQL-Datenbank auch Zeitinformationen verwalten. Hierfür kommen insbesondere die Datums- und Zeit-Typen DATETIME, DATE, TIMESTAMP, TIME und YEAR zum Einsatz. Jeder dieser Typen hat einen zulässigen Wertebereich sowie einen Nullwert, der benutzt wird, wenn man einen unzulässigen Wert speichern will.

Das Auswahlmenü bietet Ihnen verschiedene Zeittypen an.

Dabei sollten Sie beachten, dass MySQL das Speichern von bestimmten Datumswerten zulässt, wie beispielsweise 1999-11-31, auch wenn diese an sich nicht gültig sind. Der Grund hierfür: Datumsüberprüfungen liegen in der Verantwortung der Applikation, nicht des SQL-Servers.

Wie gehen Sie nun mit diesen Datentypen um? Einsatzbereiche für eine Datumsinformation gibt es zu Genüge. In der bisher erzeugten Datenbank wäre beispielsweise die Angabe von Interesse, wann eine Software zum ersten Mal auf dem Markt positioniert und wann das letzte Release veröffentlicht wurde.

Entsprechend diesem Beispiel wollen wir ein neues Feld Markteinführung erzeugen. Dazu öffnen Sie die Tabelle Software und erzeugen ein neues Feld, bezeichnen dieses mit Markteinführung und wählen als Typ DATE.

Nachdem Sie das neue Feld mit einem Klick auf Speichern gesichert haben, wechseln Sie zum Einfügen-Dialog. Dort taucht dann das Datum-Eingabefeld auf. Über das Kalender-Icon öffnen Sie ein Pop-up-Fenster, das die Terminwahl vereinfacht. Erzeugen Sie ein DATETIME- oder TIMESTAMP-Feld, so kann über das Pop-up-Fenster auch der Zeitpunkt bestimmt werden.

3.3.6 Umgang mit Indizes

Datenbanken verwenden Indizes, um Zeilen mit einem bestimmten Spaltenwert schnell aufzuspüren. Ohne solche Kennzeichnung müsste MySQL bei der Datensuche beim ersten Datensatz anfangen und dann durch die gesamte Tabelle lesen, bis die relevanten Zeilen gefunden werden.

Es versteht sich von selbst, dass dieser Vorgang umso länger dauert, je größer die Tabelle ist. Wenn die Tabellen für die in Frage kommenden Zeilen einen Index besitzen, kann MySQL schnell eine Position finden. Bei einer Tabelle mit tausend Zeilen ist dieser Vorgang laut MySQL-Website mindestens 100-mal schneller als sequentielles Lesen.

Die Index-Details zu einer Datenbanktabelle.

MySQL unterstützt verschiedene Index-Typen. Die MySQL-Indizes PRIMARY, UNIQUE und INDEX sind in so genannten B-Bäumen gespeichert. Zeichenketten werden automatisch Präfix-komprimiert, ebenso wie Leerzeichen am Ende. In der Strukturansicht haben Sie Zugriff auf die Index-Einstellungen einer Tabelle. Klicken Sie dazu auf den Link, um damit die Index-Funktionen aufzuklappen.

phpMyAdmin unterstützt verschiedene Index-Typen. Man unterscheidet insbesondere zwischen Einzel- und Mehrfeldindizes. Die zugehörigen Einstellungen sind über die Strukturansicht verfügbar. Dort erkennen Sie direkt, um welchen der beiden Typen es sich im Einzelfall handelt.

Wenn Sie einen Index-Eintrag über eine oder mehrere Spalten hinweg hinzufügen wollen, so geben Sie einfach die Anzahl der Indizes an und bestätigen mit OK. Es öffnet sich das in nachstehender Abbildung dargestellte Formular, in dem Sie die Details wie Indexnamen, Typ, Felder und Größen festlegen.

Nach dem Speichern finden Sie den neu erzeugten Index in der Strukturübersicht. Dort kann er wieder editiert werden.

Ein neuer Index-Eintrag entsteht.

Speziell für die Anforderungen von Volltextsuchen in der Datenbank wurde der Indextyp FULLTEXT geschaffen. Er unterstützt insbesondere Textfelder und kann für die gezielte Indizierung dort gespeicherter Daten verwendet werden. Besonders einfach ist das Setzen von Indexeinträgen übrigens über die Feldliste. Dort klicken Sie unter Aktion einfach auf den gewünschten Indextyp, und schon wird er in der Indexübersicht aufgeführt.

Über die Aktion-Spalten ist es ein Leichtes, einen Index zu setzen.

Ob die Indizes den gewünschten Effekt einer schnellen Suche erzielen, lässt sich mittels Stichproben herausfinden. Führen Sie einfach verschiedene Datenbankabfragen durch, und zwar einmal mit einem indizierten Begriff und das andere Mal mit einem nicht indizierten Begriff. Aus den Bearbeitungszeiten lässt sich exakt auslesen, wie groß die zeitlichen Unterschiede bei der jeweiligen Installation sind. In unserem Beispiel führen Sie dazu auf dem SQL-Dialog den folgenden Befehl aus:

SELECT *

FROM `Software`

WHERE Preis =1000

LIMIT 0 , 30

In der Ergebnisausgabe finden Sie den Verweis SQL erklären, dem Sie nützliche Informationen entnehmen können.

4 Import und Export von Daten

phpMyAdmin ist sowohl für den Import als auch den Export von Daten und Strukturen gerüstet. So können Sie bequem Datenbanken auf anderen Rechnern sichern, diese mit anderen Anwendern austauschen oder auch bestehende Datensätze nutzbar machen. Durch die Import- und Exportfunktionen sind MySQL und phpMyAdmin bestens für das Zusammenspiel mit anderen Anwendungen gerüstet.

Widmen wir uns zunächst dem Export von Daten und Datenbankstrukturen. In diesem Zusammenhang begegnet man immer wieder den Begriffen Dump, Export und Backup. Die Bedeutung der drei Begriffe liegt sehr nahe beieinander. Der Datenbankserver MySQL verfügt mit mysqldump über ein Kommandozeilenwerkzeug, das den Export von Daten erlaubt. Da Sie für dessen Nutzung Shell-Zugriff benötigen, ist das Handling umständlich und auch mit gewissen Sicherheitsrisiken verbunden.

Ein erster Blick auf die mächtige Exportfunktion von phpMyAdmin.

Um dennoch Daten benutzerfreundlich exportieren zu können, verfügt phpMyAdmin über die Exportfunktion. MySQL unterstützt auch den Export des ganzen Servers. Dazu sind allerdings entsprechende Berechtigungen erforderlich. Die Begriffe Export und Backup kann man in diesem Zusammenhang als Synonyme verstehen.

4.1 Datenexport in der Praxis

Bevor Sie sich an den Export von Daten machen, sollten Sie zunächst verschiedene Punkte klären:

· Soll die gesamte Datenbank oder nur bestimmte Tabellen exportiert werden?

· Soll lediglich die Struktur, nur die Daten oder beides exportiert werden?

· Ist lediglich ein Daten-Subset gefragt?

Die Exportfunktion ist in nahezu allen Ansichten über die Symbolleiste im oberen Arbeitsbereich verfügbar. Haben Sie aktuell eine Datenbank mit zugehöriger Ansicht geöffnet und klicken dann auf Exportieren, so geht die Exportfunktion davon aus, dass Sie die Datenbank exportieren bzw. die Tabellen, die es zu exportieren gilt, gezielt auswählen wollen. Ist andererseits eine Tabelle geöffnet und Sie klicken dann auf Exportieren, so stehen die Funktionen nur für die Tabelle zur Verfügung.

phpMyAdmin 4 stellt Ihnen zwei Exportarten zur Auswahl:

- Schnell: Hier werden die Standardexporteinstellungen verwendet.

- Angepasst: Bei dieser Exportvariante stehen Ihnen verschiedene Exporteinstellungen zur Verfügung. Die verfügbaren Anpassungen sind von Exportformat zu Exportformat sehr unterschiedlich.

Über das Auswahlmenü Format stehen Ihnen die verschiedenen Exportformate zur Verfügung. Es stehen folgende Formate zur Auswahl:

- CodeGen

- CSV-Daten für MS Excel

- CSV-Daten

- MS Word

- JSON

- LaTeX

- MediaWiki Tabelle

- OpenDocument Kalkulationstabelle

- OpenDocument Text

- PDF

- PHP array

- SQL

- Texy!text

- YAML

Standardmäßig geht phpMyAdmin davon aus, dass Sie die Daten nach SQL exportieren wollen. Auch diese Voreinstellung wird über die phpMyAdmin-Konfigurationsdatei gesteuert.

Bei allen Exportaktionen sollte man immer auch im Hinterkopf behalten, dass phpMyAdmin bislang selbst nur vergleichsweise wenige Importformate unterstützt und insbesondere SQL- und CSV-basierte Formate importieren kann. Daher ist es in der Regel sinnvoll, sich auf diese Formate zu beschränken − zumindest aber, wenn man die Daten mit anderen phpMyAdmin-Anwendern austauschen will.

Bei der angepassten Exportvariante können eine Vielzahl von Einstellungen wie beispielsweise den Speicherort und die Dateibezeichnung festlegen. Wenn Sie die Standardexporteinstellungen beibehalten und den Export mit einem Klick auf OK ausführen, erfolgt die Exportausgabe in einem Textfeld und kann weiterverarbeitet werden.

Hier ein Auszug aus einem SQL-Export:

-- phpMyAdmin SQL Dump

-- version 4.0.4

-- http://www.phpmyadmin.net

--

-- Host: 127.0.0.1

-- Erstellungszeit: 13. Jul 2013 um 10:27

-- Server Version: 5.5.32

-- PHP-Version: 5.4.16

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";

SET time_zone = "+00:00";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;

/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;

/*!40101 SET NAMES utf8 */;

--

-- Datenbank: `cdcol`

--

CREATE DATABASE IF NOT EXISTS `cdcol` DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci;

USE `cdcol`;

-- --------------------------------------------------------

--

-- Tabellenstruktur für Tabelle `cds`

--

CREATE TABLE IF NOT EXISTS `cds` (

`titel` varchar(200) COLLATE latin1_general_ci DEFAULT NULL,

`interpret` varchar(200) COLLATE latin1_general_ci DEFAULT NULL,

`jahr` int(11) DEFAULT NULL,

`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

PRIMARY KEY (`id`)

) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=7 ;

--

-- Daten für Tabelle `cds`

--

INSERT INTO `cds` (`titel`, `interpret`, `jahr`, `id`) VALUES

('Beauty', 'Ryuichi Sakamoto', 1990, 1),

('Goodbye Country (Hello Nightclub)', 'Groove Armada', 2001, 4),

('Glee', 'Bran Van 3000', 1997, 5);

--

-- Datenbank: `phpmyadmin`

--

CREATE DATABASE IF NOT EXISTS `phpmyadmin` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

USE `phpmyadmin`;

-- --------------------------------------------------------

--

-- Tabellenstruktur für Tabelle `pma_bookmark`

--

CREATE TABLE IF NOT EXISTS `pma_bookmark` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`dbase` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',

`user` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',

`label` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT '',

`query` text COLLATE utf8_bin NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Bookmarks' AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

…

…

Schauen wir uns die verschiedenen Exportoptionen genauer an. Der Aufbau der Exportdialoge bei der angepassten Exportvariante ist immer identisch. Er besteht aus vier Bereichen:

- Datenbanken/Tabellen: Je nach aktivierter Ansicht können Sie über den Bereich Datenbank bzw. Tabellen die Ablagen auswählen.

- Ausgabe: Hier bestimmen Sie, ob der Export in eine Datei oder als Text am Bildschirm angezeigt wird. Für die Ausgabe stehen Ihnen drei Einstellungen zur Verfügung, mit denen Sie die Vorlage für den Exportdateinamen, die Zeichenkodierung und die Komprimierung bestimmen.

- Format: Hier können Sie nochmals das Exportformat einsehen und ändern.

- Formatspezifische Optionen: In diesem Bereich finden Sie die Einstellungen für das jeweilige Exportformat.

4.2 CodeGen

Wenn Sie das Exportformat CodeGen verwenden, können Sie sich zwischen zwei Exportformaten entscheiden:

- NHibernate C# DO

- NHibernate XML

Mithilfe von NHibernate haben Sie die Möglichkeit, mit einer hausgemachten Query-Language (Hibernate Query Language) Anfragen an die Datenbank zu stellen.

Der Vorteil: Sie können unabhängig von datenbankspezifischen SQL-Dialekten agieren. Sollte Ihnen das nicht genügen, so können Sie auch weiterhin native SQL-Befehl verwenden. Weitere Informationen zu NHibernate finden Sie unter http://nhforge.org/Default.aspx.

Die NHibernate-Exportoptionen.

4.3 CSV-Export

phpMyAdmin erlaubt auch den Export in das CSV-Format. Hierfür stehen zwei verschiedene Exportvarianten zur Verfügung: CSV-Daten und CSV-Daten für MS Excel.

Wenn Sie sich für den Export der „normalen“ CSV-Variante entscheiden, stehen Ihnen folgende Optionen zur Verfügung, mit denen Sie insbesondere festlegen, welche Zeichen für die Trennung der unterschiedlichen Informationen verwendet werden:

- Spalten getrennt mit: Hier legen Sie fest, wie die Felder getrennt werden. Die Vorgabe lautet: .

- Spalten eingeschlossen von: Mit diesem Eingabefeld legen Sie fest, wie die Daten eingeschlossen werden. Die Vorgabe lautet ".

- Spalten escaped von: Legt die Escape-Sequenz fest. Vorgabe: ".

- Zeilen enden auf: In diesem Eingabefeld bestimmen Sie, wie die Zeilen voneinander getrennt werden. Die Vorgabe: AUTO. Alternativ können Sie auch beispielsweise \r\n verwenden.

- Ersetze NULL durch: In diesem Eingabefeld legen Sie fest, wie NULL ersetzt werden soll.

- Feldnamen in die erste Zeile setzen: Außerdem können Sie festlegen, ob die Feldnamen in die erste Zeile gesetzt werden sollen oder nicht.

Die formatspezifischen Einstellungen für den CSV-Export.

Die zweite Variante ist speziell für die Weiterverarbeitung der MySQL-Daten in Microsofts Tabellenkalkulation konzipiert. Auch OpenOffice Calc kann diese Daten verarbeiten. Voraussetzung ist allerdings, dass das PEAR-Modul Spreadsheet_Excel_Writer existiert. Weitere Informationen finden Sie unter http://pear.php.net/package/Spreadsheet_Excel_Writer.

Die Excel-Exportoptionen.

Die CSV-Exportfunktionen für Excel bieten vier Optionen:

- Ersetze NULL durch: Hier gibt man an, durch was NULL ersetzt wird. Die Vorgabe lautet NULL.

- CRLF-Zeichen aus Feldern entfernen: Aktivieren Sie dieses Kontrollkästchen, um die Steuerzeichen beim Export zu entfernen.

- Spaltennamen in die erste Zeile setzen: Hier kann man festlegen, ob der Feldname in die erste Zeile gesetzt werden soll oder nicht.

- Excel-Version: Schließlich legt man fest, ob das erzeugte Excel-Format für Windows oder Excel 2003/2008- bzw. Macintosh-Varianten gedacht ist.

Wenn das PEAR-Modul installiert ist, ist das Ausgabeformat XLS. Etwas anders sieht die Sache aus, wenn man sich für die „reine“ CSV-Variante entscheidet. Hier entsteht eine CSV-Datei, die dann beispielsweise in Excel oder anderen Programmen importiert werden kann.

Ist das PEAR Excel-Modul nicht installiert, kann man CSV-Dateien in Drittanwendungen wie beispielsweise Excel immer noch manuell importieren – und weiter verarbeiten.

4.4 Word 2000

Mithilfe von phpMyAdmin können Sie Ihre Daten auch nach Word exportieren. Für den Export steht Ihnen neben den datenspezifischen Optionen eine weitere Option zur Verfügung: Struktur. Sie sollten die Verwendung der STRUKTUR-Option auf jeden Fall aktivieren, da Sie dafür sorgt, dass das Exportergebnis einfacher zu lesen ist.

Wie Sie nachstehendem Ausschnitt entnehmen können, der einem strukturierten Export entstammt, ist er nicht unbedingt einfach zu lesen. Außerdem wird die Weiterverarbeitung der Daten nur unnötig erschwert.

Ein typischer SQL-Export sieht wie folgt aus:

-- --------------------------------------------------------

--

-- Tabellenstruktur für Tabelle `cds`

--

CREATE TABLE IF NOT EXISTS `cds` (

`titel` varchar(200) COLLATE latin1_general_ci DEFAULT NULL,

`interpret` varchar(200) COLLATE latin1_general_ci DEFAULT NULL,

`jahr` int(11) DEFAULT NULL,

`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

PRIMARY KEY (`id`)

) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=7 ;

--

-- Daten für Tabelle `cds`

--

INSERT INTO `cds` (`titel`, `interpret`, `jahr`, `id`) VALUES

('Beauty', 'Ryuichi Sakamoto', 1990, 1),

('Goodbye Country (Hello Nightclub)', 'Groove Armada', 2001, 4),

('Glee', 'Bran Van 3000', 1997, 5);

Wie dazu im Vergleich der strukturierte Export aussieht, zeigt nachstehende Abbildung. Wie dem Screenshot zu entnehmen ist, sind die Daten deutlich einfacher zu interpretieren.

Der Export von Daten und Struktur nach Word.

4.5 JSON

Das JSON-Exportformat stellt keinerlei Anpassungsmöglichkeiten zur Verfügung. Es erzeugt lediglich eine JSON-Datei (JavaScript Object Notation), die Sie beispielsweise in AJAX-basierten Web-Anwendungen verwenden können. JSON ist ein kompaktes Datenformat.

4.6 LaTeX

Wenn Sie sich für den Export ins LaTeX-Format entscheiden, stehen Ihnen verschiedene LaTeX-spezifische Optionen zur Verfügung. Dabei wird eine tex-Datei erzeugt, die die Datenbankstrukturen und Inhalte in Tabellen präsentiert. Für die Darstellung ist ein entsprechender Viewer oder eine weitere Verarbeitung erforderlich.

Die LaTeX-spezifischen Optionen.

Die Optionen im Einzelnen:

- Tabellenbeschriftung einfügen: Mit diesem Feld bestimmen Sie, dass die Tabellenbeschriftung in den Header des LaTeX-Dokuments eingefügt wird.

- Tabelle exportieren: Hier bestimmen Sie strukturspezifischen Einstellungen. Entscheiden Sie, ob Sie die Struktur, die Daten oder Struktur und Daten exportieren wollen.

- Tabellenbeschriftung: Fügt die Beschriftung in der Form Struktur der Tabelle Tabellenname ein.

- Tabellenbeschriftung (2): Fügt weitere Beschriftungen hinzu.

- Kennzeichen: Fügt die Kennzeichen Tabellenverknüpfungen, Kommentare und MIME-Typ hinzu.

s folgen die datenspezifischen Einstellungen, die zunächst über den Schalter Spaltenname in die erste Zeile setzen aktiviert werden müssen. Hier stehen Ihnen folgende Optionen zur Verfügung:

- Tabellenbeschriftung: Diese Option fügt die Tabellenbeschriftung in der Form Inhalt der Tabelle @TABLE@ hinzu.

- Tabellenbeschriftung (2): Hier ist Platz für weitere Tabellenbeschriftungen.

- Kennzeichen: Hiermit wird die Information tab:@TABLE@-data in die Exportdatei eingebettet.

- Ersetze NULL durch: Schließlich ist festgelegt, mit welcher Zeichenfolge NULL ersetzt wird. Dies ist standardmäßig \textit{NULL}.

Der Export von MySQL-basierten Daten in ein MediaWiki.

4.7 MediaWiki Tabelle

Wenn Sie die in einer Datenbank gespeicherten Daten in einer MediaWiki-Installation verwenden wollen, können Sie diese in eine MediaWiki-Tabelle exportieren. Dabei können Sie zunächst wieder festlegen, ob Sie die Struktur, die Daten oder Struktur und Daten exportieren wollen. Typischerweise werden nur die Daten exportiert, um dann in dem Wiki verwendet zu werden.

Außerdem können Sie die beiden folgenden Optionen nutzen:

- Exportiere Tabellenamen: Erlaubt den Export des Tabellennamens.

- Exportiere Tabellenkopfzeilen: Auch die Kopfzeilen können exportiert werden.

Der Export in das OpenCalc-Format ODS.

4.8 OpenDocument Kalkulationstabelle

Sie können Ihre Datenbanken auch in zwei OpenOffice-Formate exportieren. Wenn Sie die Option OpenDocument Kalkulationstabelle verwenden, so erzeugt phpMyAdmin eine OpenOffice Calc-Tabelle im ODS-Format.

Beim ODS-Format stehen Ihnen zwei Optionen zur Verfügung. Sie können die beiden oben beschriebenen Einstellungen für die NULL-Erstellung und das Einfügen des Feldnamens in der ersten Zeile verwenden.

4.9 OpenDocument Text

Auch der Export nach OpenOffice Writer ist mit phpMyAdmin möglich. Aktivieren Sie dazu einfach die Option Open Document Text. Die verfügbaren Optionen zeigt nachstehende Abbildung. Als Exportdatei wird eine ODT-Datei generiert.

Die OpenOffice-Writer-Exportoptionen.

Die ODT-Exporteinstellungen umfassen drei Bereiche:

- Tabelle exportieren: Hier bestimmen Sie, ob die Struktur, die Daten oder beides exportiert werden.

- Objekteinstellungsoptionen: In diesem Bereich können Sie für die Anzeige der Fremschlüssel-Bezeichnungen, von Kommentaren und MIME-Typen sorgen.

- Datenexport-Optionen: Hier ist standardmäßig die Verwendung des Spaltennamens und der NULL-Ersetzung vorgesehen.

4.10 PDF

In der aktuellen Version von phpMyAdmin ist auch der Export in das PDF-Format möglich. Beim PDF-Export steht Ihnen lediglich eine Option zur Verfügung: Sie können den Titel der zu erzeugenden PDF-Datei bestimmen.

Die PDF-Exportoptionen erlauben lediglich die Vergabe eines Berichttitels.

4.11 PHP array

Die Exportoption PHP array stellt keinerlei Anpassungsmöglichkeiten zur Verfügung. Sie können mit dem Export-Plug-in lediglich eine PHP-Datei erzeugen und diese dann in Drittanwendungen weiterverwenden. Es handelt sich bei der PHP array-Erweiterung um eine frühe Betaversion (0.2b). Prüfen Sie daher gegebenenfalls, ob die exportieren Daten überhaupt an anderer Stelle verwendet werden können.

Ein Teil der SQL-Exporteinstellungen.

4.12 SQL-Exportoptionen

Wie bereits erwähnt, fallen die SQL-Exportoptionen sehr umfangreich aus. Die Optionen sind in mehrere Bereiche unterteilt. Im Kopfbereich finden Sie folgende Optionen:

- Kommentare anzeigen: In diesem Eingabefeld können Sie einen individuellen Kommentar hinzufügen und diesen beispielsweise mit Backup_vom_10_07_2013 oder als Daten_fuer_Kunde_XYZ bezeichnen. Soll der Kommentar mehrere Zeilen umfassen, müssen Sie für jede neue Zeile den Separator \n einfügen.

- Export in einer Transaktion zusammenfassen: Mit der Einführung MySQL 4.0.11 kann der Start-Transaction-Befehl verwendet werden. Dieser kombiniert die Kommandos SET AUTOCOMMIT=0 und COMMIT am Ende. Er stellt sicher, dass alle Aktionen in einem Schritt durchgeführt werden.

- Fremdschlüsselüberprüfung deaktivieren: In der Exportdatei kann ein DROP TABLE-Befehl hinzugefügt werden. DROP TABLE löscht Tabellen aus der Datenbank. Nur der Eigentümer kann eine Tabelle löschen. DROP TABLE löscht immer alle Indizes, Regeln, Trigger und Constraints der Zieltabelle. Allerdings darf eine Tabelle nicht entfernt werden, wenn sie durch einen anderen Schlüssel referenziert wird. Diese Option überschreibt die Verifizierung durch das Hinzufügen von SET FO-REIGN_KEY_CHECKS=0.

- SQL-Kompatibilitätsmodus: MySQL kann in verschiedenen SQL-Modi betrieben werden. Der Vorteil: Sie können den Modus auf die verwende-ten Clients abstimmen. Mithilfe dieser Optionen können Sie den Ausführungsmodus an spezifische Anforderungen anpassen. Ein SQL-Modus definiert konkret, welche SQL-Syntax und welche Arten von Gültigkeitsprüfungen verwendet werden. Sie haben über das Auswahlmenü die Wahl zwischen folgenden Optionen: NONE, ANSI, DB2, MAXDB, MYSQL 323, MYSQL40, MSSQL, ORACLE und TRADITIONAL.

- Drop Database-Befehl hinzufügen: Führt den SQL-Befehl dem Export hinzu. Diese Option sollten Sie nur mit Bedacht aktivieren, denn der Befehl DROP DATABASE löscht alle Tabellen in der Datenbank und nachfolgend auch die Datenbank. Seien Sie daher also sehr vorsichtig mit dieser Option.

- Struktur/Daten/Struktur und Daten: Erlaubt die Auswahl, ob die Struktur, die Daten oder beides exportiert werden.

Die Objekteinstellungsoptionen für den angepassten SQL-Export.

Es folgt der Bereich Objekteinstellungsoptionen mit verschiedenen Optionen, die sich auf die Datenbankstruktur beziehen:

- DROP TABLE und weitere Befehle hinzufügen: Diese Option fügt das Statement DROP TABLE IF EXISTS von jedem CREATE TABLE hinzu.

- CREATE PROCEDURE hinzufügen: Diese Option erlaubt der Erzeugen einer Prozedur.

- Create Table stellt zwei Unteroptionen bereit:

- IF NOT EXISTS: Fügt eine IF NOT EXISTS-Info zu CREATE TABLE hinzu. Dies verhindert Fehlermeldungen beim Import, wenn die Tabelle bereits besteht.

- AUTO_INCREMENT: Dieser Schalter fügt die Auto-Inkrement-Information zur Exportdatei hinzu. Damit ist sichergestellt, dass eingeführte Reihen eine automatisch erhöhte ID erhalten.

- Tabellen- und Feldnamen in Anführungszeichen einschließen: Mit diesem Schalter kann man Tabellen- und Feldbezeichnungen vor versehentlichen Änderungen schützen.

Die umfangreichen Datenerstellungsoptionen des angepassten SQL-Exports.

Es folgt der Abschnitt Datenerstellungsoptionen, in dem ebenfalls verschiedene SQL-spezifische Optionen festgelegt werden können.

- TRUNCATE Tabelle vor dem Einfügen: Der Befehl TRUNCATE TABLE leert eine Tabelle vollständig.

- INSERT DELAYED-Befehle: Verwendet die INSERT DELAYED-Befehl. Deren Verwendung ist sinnvoll, wenn die verwendeten Clinents nicht auf den Abschluss der INSERT-Anweisung warten können oder müssen.

- INSERT IGNORE Schlüsselworte: Übergeht INSERT-Befehl.

- Exporttyp: Schließlich haben Sie die Wahl zwischen den Exporttypen INSERT, UPDATE und REPLACE. Der Typ INSERT ist der gängigste. Gelegentlich kann es auch sinnvoll sein, beispielsweise mit UPDATE zu aktualisieren bzw. mit REPLACE zu ersetzen.

Mehr braucht es nicht: Die simple Textkonvertierung mit dem Texy! text-Konverter.

4.13 Texy! text

Mit Texy! text verfügt phpMyAdmin über einen einfachen Konverter, der Ihre Daten in ein spezifisches Textformat konvertiert. Für die Konvertierung stehen Ihnen neben der Auswahl von Struktur und Daten wieder die NULL-Ersetzung und die Option für das Einfügen der Feldnamen zur Verfügung. Hier ein Beispiel für einen Export:

===Datenbank ecb

== Tabellenstruktur für Tabelle address_book

|------

|Feld|Typ|Null|Standard

|------

|//**address_book_id**//|int(11)|Ja|NULL

|customers_id|int(11)|Ja|NULL

|entry_gender|char(1)|Ja|NULL

|entry_company|varchar(32)|Ja|NULL

|entry_firstname|varchar(32)|Ja|NULL

|entry_lastname|varchar(32)|Ja|NULL

|entry_street_address|varchar(64)|Ja|NULL

|entry_suburb|varchar(32)|Ja|NULL

|entry_postcode|varchar(10)|Ja|NULL

|entry_city|varchar(32)|Ja|NULL

|entry_state|varchar(32)|Ja|NULL

|entry_country_id|int(11)|Ja|0

|entry_zone_id|int(11)|Ja|0

|address_date_added|datetime|Ja|0000-00-00 00:00:00

|address_last_modified|datetime|Ja|0000-00-00 00:00:00

|address_class|varchar(32)|Ja|0

== Daten für Tabelle address_book

4.14 YAML

Schließlich ist mit phpMyAdmin noch der Export Ihrer Datenbanken nach YAML möglich. YAML ist ein rekursives Akronym für „YAML Ain't Markup Language“. Ursprünglich wurde es als Yet Another Markup Language bezeichnet. YAML ist eine Sprache zur Datenserialisierung, angelehnt an XML (ursprünglich) und an die Datenstrukturen in den Sprachen Perl, Python und C.

Eine Exportoption bietet diese Exportfunktion nicht. Sie können den Export lediglich mit einem Klick auf OK einleiten. Hier ein Ausschnitt aus einer Exportdatei:

%YAML 1.1

---

# cdcol.cds

-

titel: "Beauty"

interpret: "Ryuichi Sakamoto"

jahr: 1990

id: 1

-

titel: "Goodbye Country (Hello Nightclub)"

interpret: "Groove Armada"

jahr: 2001

id: 4

-

titel: "Glee"

interpret: "Bran Van 3000"

jahr: 1997

id: 5

# phpmyadmin.pma_recent

-

username: "root"

tables: "[{\"db\":\"cdcol\",\"table\":\"cds\"},{\"db\":\"phpmyadmin\",\"table\":\"pma_column_info\"},{\"db\":\"phpmyadmin\",\"table\":\"pma_designer_coords\"},{\"db\":\"phpmyadmin\",\"table\":\"pma_history\"},{\"db\":\"phpmyadmin\",\"table\":\"pma_pdf_pages\"},{\"db\":\"phpmyadmin\",\"table\":\"pma_recent\"},{\"db\":\"phpmyadmin\",\"table\":\"pma_relation\"},{\"db\":\"mysql\",\"table\":\"user\"},{\"db\":\"mysql\",\"table\":\"help_relation\"},{\"db\":\"mysql\",\"table\":\"db\"}]"

# phpmyadmin.pma_userconfig

-

username: "root"

timevalue: "2013-07-12 23:26:13"

config_data: "{\"lang\":\"de\"}"

# webauth.user_pwd

-

name: "xampp"

pass: "wampp"

...

Damit kennen Sie alle in phpMyAdmin verfügbaren Exportformate und deren Exportoptionen. Nach der Wahl des gewünschten Formats und etwaiger Anpassungen der Exportoptionen, müssen Sie nur noch das Exportziel und dessen Eigenschaften bestimmen.

4.15 Exportziel definieren

Wenn Sie Daten aus der SQL-Datenbank entsprechend der voranstehenden Wegbeschreibung exportieren, kann die Ausgabe des Exportvorgangs entweder im Browser-Fenster erfolgen oder Sie können die Datei in einer geeigneten Anwendung öffnen bzw. die Daten lokal speichern.

Wenn Sie die Daten gezielt auf anderen Systemen oder Verzeichnissen speichern wollen, müssen Sie dies explizit im Exportformular angeben. Damit die Funktion greift, aktivieren Sie zunächst die Option Speichere Ausgabe in Datei.

Im Kopfbereich des Exportdialogs finden Sie die Speichernoptionen.

Im Textfeld Speichere Ausgabe in Datei legen Sie fest, wie die Zieldatei heißen soll. phpMyAdmin gibt dabei den Platzhalter @SERVER@ vor, der das Ziel bestimmt. Die Bezeichnung wird über das Dateinamen-Template gesteuert.

Bei einer Tabelle lautet die angebotene Dateibezeichnung in unserem Beispiel entsprechend Hersteller.sql oder Software.sql. Außerdem können Sie verschiedene Kompressionsverfahren verwenden:

- Zip-komprimiert

- GZip-komprimiert

- BZip-komprimiert

Welches im Einzelfall die optimale Lösung ist, hängt auch von der verwendeten Zielplattform ab, auf der die Dateien zum Einsatz kommen.

4.16 Daten auf dem Server sichern

Durch einen weiteren Eingriff in die phpMyAdmin-Konfigurationsdatei können Sie die Funktionalität der Exportfunktion erweitern. Statt die Exportdatei im Webbrowser-Fenster anzuzeigen oder auf einen Client-Rechner zu übertragen, können Sie sie auch in einem beliebigen Webserver-Verzeichnis ablegen. Der Vorteil: So können auch andere Clients – entsprechende Rechte vorausgesetzt – diese Daten nutzen.

Erzeugen Sie zunächst auf dem Webserver ein neues Verzeichnis, das Sie beispielsweise mit sicher bezeichnen. Dieses Verzeichnis muss in der phpMyAdmin-Konfigurationsdatei wie folgt eingetragen werden:

$cfg['./sicher']

Alternativ können Sie auch einen absoluten Systempfad angeben. Dann speichern Sie die Konfigurationsdatei und starten die MySQL-Umgebung neu. Im Exportdialog finden Sie unter Ausgabe nun zwei neue Optionen:

- Datei auf dem Server in Verzeichnis ./sicher speichern: Hier legen Sie fest, ob die Exportdatei in dem zuvor erzeugten Verzeichnis gespeichert werden soll.

- Bestehende Datei(en) überschreiben: Existieren bereits eine oder mehrere Sicherungen, so legen Sie mit dieser Option fest, ob diese gegebenenfalls überschrieben werden sollen. Ob das sinnvoll ist, muss im Einzelfall entschieden werden.

Die Sicherung erfolgt wie bei allen anderen Exportvorgängen auch durch einen Klick auf die Schaltfläche OK. Sollte das angegebene Verzeichnis nicht bestehen oder der Webserver nicht über die erforderlichen Schreibrechte verfügen, wird folgende Fehlermeldung ausgegeben:

Der Webserver hat keine Schreibrechte, um die Datei ./sicher/neueDatenbank.sql zu speichern. In diesem Fall müssen Sie überprüfen, ob das Verzeichnis besteht und ob die Rechte stimmen.

4.17 Import von Daten und Strukturen

Eine nicht minder wichtige Anforderung ist der Import von Daten in eine über phpMyAdmin verwaltete MySQL-Datenbank. So können Sie bestehende Datensätze, die Sie beispielsweise von Dritten erhalten haben, auch in der eigenen Umgebung nutzen.

Um es vorwegzunehmen: Die Import- sind im Vergleich zu den Exportfunktionen bislang leider recht beschränkt. Bislang gibt es folgende Wege, die man einschlagen kann:

- Direkter Import von SQL-Statements, also SQL-Dateien.

- Upload von CSV-Dateien.

- Import von MediaWiki-Tabellen.

- ESRI-Share-Dateien.

- XML-Dateien.

Um bestehende SQL-Daten in eine bestehende oder auch Datenbank zu importieren, öffnen Sie zunächst unter Zu importierende Datei die gewünschte Datenbank. Die Importfunktion kann auch komprimierte Dateien erkennen und importieren.

Bestimmen Sie unter Format das Importformat sowie gegebenenfalls notwendige formatspezifische Einstellungen. Mit einem Klick auf OK wird der Import durchgeführt. phpMyAdmin gibt anschließend eine Bestätigung aus, wenn die Daten erfolgreich in die bestehende Struktur eingefügt wurden.

Die Importfunktion von phpMyAdmin.

Ein wenig anders sieht die Vorgehensweise aus, wenn Sie eine CSV-Datei importieren wollen. Dazu öffnen Sie zunächst die Tabellenansicht und wechseln dann zum Register Importieren. Wählen Sie nun wieder über den Bereich Zu importierende Datei die CSV-Datei aus. Beim CSV-Import stehen Ihnen verschiedene Optionen für den Importvorgang zur Verfügung:

- Tabelleninhalt ersetzen: Durch das Aktivieren des Kontrollkästchens Ersetzen ersetzt der Inhalt der CSV-Datei die Einträge mit den gleichen Primär- oder Unique-Schlüsseln.

- Spalten getrennt mit: Hier legen Sie das Trennsymbol zwischen den Feldern fest.

- Spalten eingeschlossen von: Hier legen Sie die Einschlusszeichen fest. Meist sind es Anführungszeichen. Der Schalter Optional bedeutet, dass nur Textfelder von den angegeben Zeichen eingeschlossen sind.

- Spalten escaped von: Hiermit bestimmen Sie, wie Sonderzeichen kenntlich gemacht werden.

- Zeilen enden mit: Mit diesem Eingabefeld legen Sie den Wagenrücklauf (\r) und den Zeilenvorschub (\n) aus.

- Spaltennamen: Wenn Sie nur bestimmte Spalten importieren wollen, geben Sie diese hier an.

- INSERT-Fehler: Durch Aktivieren dieser Optionen wird der Import nicht abgebrochen, wenn ein INSERT-Fehler auftritt.

Die Einstellungen für den CSV-Import.

Glückt der Import, so gibt phpMyAdmin auch hier eine Erfolgsmeldung aus. Gelingt er nicht, enthalten die Fehlerausgaben meist wertvolle Hinweise, wie das Problem zu lösen ist.

phpMyAdmin kann auch Dateien direkt aus einen Webserver-Verzeichnis beziehen. Dazu sind einmal mehr Eingriffe in die Konfigurationsdatei erforderlich. Konkret muss hierfür folgende Option angepasst werden:

$cfg['UpLoadDir']

Hier geben Sie das gewünschte Verzeichnis an, das beispielsweise unternehmensweit verfügbar ist. Ein Beispiel:

$cfg['UpLoadDir'] = './upload_verzeichnis';

Dieses Verzeichnis ist dann ebenfalls über die Tabellenansicht verfügbar.

4 SQL-Befehle ausführen

Eine der wichtigsten Aufgaben, die Sie mithilfe von phpMyAdmin zu erledigen haben, ist die Ausführung von SQL-Befehlen. In diesem Kapitel wollen wir uns ansehen, wie Sie SQL-Kommandos mit phpMyAdmin ausführen. Das dafür benötigte Hilfsmittel ist der SQL-Abfrageeditor. Dessen Funktionen sind über das zugehörige Icon der Navigationsleiste wie auch über das entsprechende SQL-Sinnbild im Arbeitsbereich oder über das Register SQL verfügbar.

Der SQL-Abfrageeditor erlaubt die Ausführung von SQL-Befehlen.

Abfragen werden mit dem SELECT-Statement durchgeführt. Mit dieser Funktion lassen sich Informationen aus einer Tabelle herausziehen. Da es sich um das zentr-ale Kommando handelt, wollen wir hier kurz auf die Verwendung eingehen. Die allgemeine Form des Statements ist:

SELECT auszuwählende_spalten

FROM tabelle

WHERE gewünschte_bedingungen

Dabei bezeichnet auszuwählende_spalten das, was Sie suchen. Es kann sich entweder um eine Liste von Spalten oder um alle Spalten handeln, die in einer Datenbank enthalten sind. tabelle kennzeichnet die Tabelle, aus der Sie die Spalten abfragen wollen. Die WHERE-Klausel ist optional. Der Schalter gewünschte_bedingungen definiert Bedingungen, die die Inhalte erfüllen müssen, damit sie gefunden werden.

4.1 Abfragefenster

Der Einfachheit halber arbeiten wir mit dem Abfragefenster, das man über die Navigationsleiste öffnet. Dort finden Sie das Eingabefeld für die Abfrage sowie die Feldauswahl. Mithilfe der Feldauswahl vereinfacht sich die Eingabe der Abfrage spürbar. phpMyAdmin gibt eine Standard-SELECT-Anweisung in folgender Form vor:

SELECT * FROM `Software` WHERE 1

Durch die Auswahl eines oder auch mehrerer Felder können Sie die Aktion bequem auf die ausgewählten Ablagen beschränken. Wollen Sie mehrere Felder einzeln markieren, so halten Sie die Strg-Taste gedrückt und markieren der Reihe nach die einzelnen Einträge. Mit einem weiteren Klick auf den Doppelpfeil landet die Feldbezeichnung im Query-Eingabefeld. Es muss lediglich noch die Kondition hinzufügt werden. In nachstehendem Beispiel ist die Auswahl aus der Tabelle Software mit der Kondition Preis ist kleiner als 5000 zu sehen.

Mit der Feldauswahl vereinfacht sich die Eingabe von Abfragen.

Unterhalb des Eingabefeldes für die SQL-Befehle finden Sie zwei weitere Funktionen:

- SQL-Abfrage speichern: Sie können die Abfrage für die spätere Verwendung speichern. Dann ist die Wiederverwendung besonders einfach.

- Diese Abfrage hier wieder anzeigen: Wenn Sie diese Option aktivieren, bleiben die eingefügten SQL-Kommandos auch nach der Ausführung im Eingabefeld stehen. Diese Option ist standardmäßig aktiviert.

- Abfrage vor Änderungen außerhalb des Fensters schützen: Diese Option ist standardmäßig aktiviert. Die Inhalte des Abfragefeldes werden bei der Wahl einer anderen Datenbank oder einer anderen Tabelle automatisch angepasst. Wechseln Sie beispielsweise von der Datenbank Software zur Datenbank Hersteller, so wird aus SELECT * FROM `Software` WHERE 1 die Vorgabe SELECT * FROM `Hersteller` WHERE 1. Durch Aktivieren dieser Option unterbinden Sie dies. Die Option bietet also einen gewissen Schutz.

Im Abfragefenster finden Sie neben der oben beschriebenen Importfunktion das sogenannte SQL-Verlaufsprotokoll. Damit können Sie erfolgreich ausgeführte SQL-Kommandos erneut einsehen und weitere Male ausführen. Um die Details abzurufen, führen Sie den Mauszeiger über einen Eintrag.

Zur erneuten Ausführung klicken Sie einfach auf den zugehörigen Link. Über die Konfigurationsdatei können Sie übrigens die Anzahl der maximal möglichen Einträge verändern. Die zugehörige Einstellung wird über folgende Konfiguration bestimmt (Die Vorgabe lautet 25):

$cfg['QueryHistoryMax']

Wie bereits erwähnt, erlaubt das SQL-Abfragefenster auch das Speichern von Abfragen, damit Sie zu einem späteren Zeitpunkt wieder bequem darauf zurückgreifen können. Das Speichern ist einfach: Geben Sie unter SQL-Abfrage speichern eine aussagekräftige Bezeichnung ein und aktiviert Sie gegebenenfalls die Option Diese gespeicherte SQL-Abfrage für jeden Benutzer verfügbar machen. Der Zugriff auf die Abfrage erfolgt dann über das SQL-Verlaufsprotokoll.

Der bequeme Zugriff auf gespeicherte Abfragen erfolgt über das SQL-Verlaufsprotokoll.

4.2 Suche in MySQL-Datenbanken

Datenbanken wollen nicht nur mit Daten gefüttert und bearbeitet werden, sondern dienen insbesondere auch der Bereitstellung von Informationen. phpMyAdmin bietet auch hierfür die passende Lösung.

Die Suchfunktion ist datenbank- und tabellenübergreifend verfügbar. Öffnen Sie dazu die Datenbankansicht und klicken Sie dann auf die Schaltfläche Suche. Es öffnet sich ein einfaches Formular, wie in nachstehender Abbildung gezeigt. Weit flexibler ist das Suchformular bei der Tabellenansicht.

Das Suchformular der Datenbankansicht.

Hier stehen Ihnen verschiedene Optionen für die Beschränkung der Suche zur Verfügung. Zunächst geben Sie unter Zu suchende Wörter oder Werte (Platzhalter: "%") den oder die Suchbegriffe ein. Mit der Option Finde können Sie die Suche gezielt mit folgenden Suchoptionen einschränken:

- mindestens eines der Wörter

- alle Wörter

- genau diese Zeichenkette

- als regulären Ausdruck

Unter In der/den Tabelle(n) erfolgt die Auswahl der Tabellen, die Sie durchforsten wollen. Um die Suche in allen Tabellen durchzuführen, klicken Sie auf Alle auswählen. Für die Auswahl mehrerer einzelner Tabellen verwenden Sie wieder die Strg-Taste und markieren die einzelnen Tabellen.

Das Suchformular für Tabellen.

Deutlich flexibler ist die Suche in Tabellen. Um diese erweiterte Suchfunktion zu öffnen, greifen Sie zunächst auf die Tabelle zu, die Sie durchsuchen wollen. Um das Suchformular zu öffnen, klicken Sie in der Tabellenansicht auf Suchen. Wie bei anderen Funktionen wird der Suche-Reiter in einem etwas helleren Farbton angezeigt, wenn Sie auf die Suche zugreifen.

Besonders flexibel präsentieren sich die Suchkriterien. Hier werden die Tabellenfelder samt Typ, Sortierung, Operator und dem Wert, also dem Suchbegriff aufgeführt. In unserem Beispiel sind das die Tabellenfelder Produktname, Hersteller, Kategorie, Preis, Produktbeschreibung, Screenshot, Programmcode, Lizenz und Markteinführung.

Innerhalb dieser Felder können Sie gezielt eine Suche durchführen. Um die Suche gezielter auf einen bestimmten Bereich zu begrenzen, bedienen Sie sich der Funktionen des Operator-Menüs.

Sie können folgende Operatoren einsetzen:

- LIKE

- LIKE %...%

- NOT LIKE

- =

- !=

- REGEXP

- NOT REGEXP

Suchen Sie beispielsweise in der Produktbeschreibung nach dem Begriff Mehrbenutzerumgebung, so verwenden Sie entweder den Operator LIKE oder =. Wollen Sie einen Platzhalter verwenden, so greifen Sie zum Operator LIKE%...%.

Die Kombination von Suchbegriffen.

Auch die Kombination von mehreren Suchkriterien ist möglich. Suchen Sie beispielsweise ein kommerzielle Unternehmenslösung, so nehmen Sie die in voranstehender Abbildung dargestellten Einstellungen vor.

Mit einem Klick auf Optionen öffnen Sie die weiteren Suchoptionen, die die Tabellensuche zu bieten hat. Im linken Bereich erfolgt die Auswahl des oder der Felder. Daneben legen Sie fest, wie viele Ergebnisse pro Ausgabeseite aufgeführt werden. Der Standard ist 30. Es folgen die Einstellungen für die Sortierung der Ergebnisse. Die Sortierung kann auf- oder absteigend erfolgen – immer abhängig von der gewählten Feldbezeichnung.

Die Suchoptionen der tabelleninternen Suche.

Zwei Funktionen des Suchformulars haben wir noch nicht beschrieben. Mit dem Eingabefeld Eigenes Filterkriterium (Argumente für den WHERE-Ausdruck) können Sie die WHERE-Klausel in die Suche einbeziehen. In der WHERE-Klausel können Sie beliebige Funktionen verwenden, die MySQL unterstützt. Suchen Sie beispielsweise nach einer Software, die kommerziell ist oder der GPL unterliegt, geben Sie in dieses Textfeld folgende Anweisung ein:

lizenz in ('kommerziell', 'GPL')

Über den Dokumentationslink greifen Sie auf die offizielle MySQL-Dokumentation zu, die die verfügbaren Funktionen beschreibt. Die zweite Funktion ist die Option DISTINCT, die Sie neben der Feldauswahl finden. Wenn Sie diesen Schalter aktivieren, wird verhindert, dass gleiche Suchergebnisse mehrfach aufgeführt werden.

5 Operationen

Tabellenoperationen zählen mit zu den wichtigsten Aktionen, die Sie mit phpMyAdmin durchführen können. Dabei handelt es sich um Aktionen, die auf eine Tabelle als Ganzes angewendet werden – im Unterschied zu Aktionen, die auf einzelne Felder angewendet werden. Die zugehörigen Funktionen sind in der Tabellenansicht über das Register Operationen verfügbar. Die zugehörige Seite präsentiert fünf Bereiche: In den vier oberen finden Sie die Einstellungen für die eigentlichen Tabellenoperationen, darunter verschiedene Hilfsmittel.

Die Funktionen für Tabellenoperationen.

5.1 Die Tabellenoperationen im Überblick

Der linke obere Bereich bietet als erste Funktion eine Sortierfunktion an. MySQL weist einer Tabelle eine Standardreihenfolge zu. Die Vorgabe kann mit dieser Funktion geändert werden. Dazu wählen Sie den Feldnamen und dann die Sortierung Aufsteigend bzw. Absteigend. Die neue Sortierung aktivieren Sie mit einem Klick auf OK. Beim nächsten Öffnen der Tabellenansicht ist die Änderung bereits aktiv.

Rechts daneben finden Sie den Bereich Verschiebe Tabelle nach (Datenbank,Tabellenname). Diese Funktion erlaubt das Verschieben der aktuell geöffneten Tabelle in eine andere Datenbank. Dazu wählen Sie im ersten Auswahldialog die bestehende Datenbank und bestimmen im zweiten Auswahlmenü die Zieltabelle. Mit der Option AUTO_INCREMENT-Wert hinzufügen sorgen Sie dafür, dass ein AUTO_INCREMENT-Wert der Zieltabelle hinzugefügt wird. Mit einem Klick auf OK führen Sie die Verschiebung aus.

Die Tabellenoptionen.

Weitere sehr nützliche Funktionen finden Sie im Bereich Tabellenoptionen. Die Operationen sehen beispielsweise das Umbenennen von Tabellen vor. Dazu geben Sie einfach in das Textfeld Tabelle umbenennen in die neue Bezeichnung ein und bestätigen mit OK. Unterhalb finden Sie eine weitere selbsterklärende Funktion: Im Feld Tabellen-Kommentar können Sie ergänzende Informationen an die Tabelle heften.

Als Nächstes erlauben die Tabellenoptionen das Ändern des Tabellenformats. Über das zugehörige Auswahlmenü stehen verschiedene grundlegende Tabellenformate zur Auswahl:

- ISAM

- MEMORY

- MyISAM

- BLACKHOLE

- MRG_MYISAM

- CSV

- ARCHIVE

- InnoDB

Aktuelle MySQL-Versionen unterstützen weitere Tabellentypen, beispielsweise BDB. Dies ist allerdings von der Kompilierung abhängig.

Beim Erzeugen bzw. Bearbeiten einer neuen Tabelle kann man MySQL mitteilen, welcher Tabellentyp verwendet werden soll. MySQL erzeugt immer eine .frm-Datei, die die Tabellen- und Spaltendefinitionen enthält. Abhängig vom Tabellentyp werden Indizes und Daten in anderen Dateien gespeichert. MySQL verwendet standardmäßig das MyISAM-Format. Prinzipiell unterstützt MySQL zwei unterschiedliche Arten von Tabellen: transaktionssichere Tabellen (InnoDB und BDB) und nicht transaktionssichere Tabellen (HEAP, ISAM, MERGE und My-ISAM).

Die transaktionssicheren Tabellen weisen verschiedene Vorteile auf:

- Sie sind sicherer. Selbst wenn MySQL abstürzt oder ein Hardware-Problem auftritt, kann man die Daten zurückholen, entweder über automatische Wiederherstellung oder von einer Datensicherung plus Transaktionslog-Datei.

- Man kann mehrere Statements kombinieren und alle in einem Vorgang mit dem COMMIT-Befehl akzeptieren.

- Man kann das sogenannte ROLLBACK ausführen, um Änderungen zu ignorieren.

- Schlägt eine Tabellenaktualisierung fehl, werden die Änderungen zurückgesichert.

- Aber auch die nicht transaktionssicheren Tabellen haben ihre Vorteile:

- Sie sind viel schneller, da es keinen Transaktionsoverhead gibt.

- Sie benötigen aufgrund des fehlenden Transaktionsoverheads weniger Speicherplatz.

- Und sie benötigen weniger Arbeitsspeicher für Aktualisierungen.

Prinzipiell sollte man beachten, dass das Ändern des Tabellentyps längere Zeit beansprucht. Insbesondere dann, wenn die Tabelle eine Vielzahl an Feldern aufweist.

Die Kopierfunktion.

In der Praxis erweist sich auch gerade die Kopierfunktion als sehr nützlich. Mit ihr kann man Tabellen von einer Datenbank zur anderen kopieren. Da diese Funktion von MySQL nicht direkt unterstützt wird, erzeugt phpMyAdmin in der Zieldatenbank eine neue Tabelle und kopiert die Daten dann dorthin. Die Ausgangstabelle bleibt unberührt.

Die Vorgehensweise ist einfach: Sie legen die Ausgangstabelle und das Ziel fest und bestätigen den Vorgang mit OK. phpMyAdmin zeigt nach dem erfolgreich ausgeführten Kopiervorgang eine Erfolgsmeldung und die zugehörigen Kommandos an. Hier ein Beispiel:

CREATE TABLE `Ziel`.`Hersteller` (

`Firmenname` varchar( 100 ) NOT NULL default '',

`Straße` varchar( 100 ) NOT NULL default '',

`Postleitzahl` int( 100 ) NOT NULL default '0',

`Stadt` varchar( 100 ) NOT NULL default '',

`Land` varchar( 100 ) NOT NULL default '',

`Telefon` int( 100 ) NOT NULL default '0',

`Fax` int( 100 ) NOT NULL default '0',

`Web` varchar( 100 ) NOT NULL default '',

`E-Mail` varchar( 100 ) NOT NULL default '',

`CTAnsprechpartner` varchar( 100 ) NOT NULL default ''

) ENGINE = MYISAM DEFAULT CHARSET = latin1;

INSERT INTO `Ziel`.`Hersteller`

SELECT *

FROM `neueDatenbank`.`Hersteller` ;

DROP TABLE `neueDatenbank`.`Hersteller` ;

Den Kopiervorgang können Sie mit folgenden Optionen steuern:

- Nur Struktur: Soll nur die Tabellenstruktur ohne die Daten kopiert werden, so wählen Sie diese Option.

- Struktur und Daten: Mit dieser Option erzeugen Sie eine Eins-zu-Eins-Kopie.

- Nur Daten: Wollen Sie die Daten an eine bestehende Tabelle anhängen, so entscheiden Sie sich für diese Option.

- DROP TABLE hinzufügen: Aktiveren Sie dieses Kontrollkästchen, um die Ausgangstabelle zu löschen.

- AUTO_INCREMENT-Wert hinzufügen: Mit diesem Schalter sorgen Sie dafür, dass der Zieltabelle ein AUTO_INCREMENT-Wert hinzugefügt wird.

- Zur kopierten Tabelle wechseln: Wollen Sie nach dem Kopiervorgang mit der Zieltabelle weiter arbeiten, so aktivieren Sie diese Option.

Die Hilfsmittel der Operationen-Seite erlauben das Überprüfen, Analysieren, Reparieren und Optimieren einer Tabelle.

5.2 Hilfsmittel für das Prüfen, Analysieren etc.

Schließlich finden Sie auf der Operationen-Seite noch den Bereich Hilfsmittel, über den verschiedene Utilities für das Prüfen, Analysieren, Reparieren und Optimieren verfügbar sind.

Das erste Hilfsmittel dient der Prüfung der Tabelle. Dabei wird der Befehl CHECK TABLE ausgeführt. Dieser funktioniert nur bei MyISAM-Tabellen. Erkennt die Tabellenprüfung eine Beschädigung, so ist das Problem höchst wahrscheinlich in den Indexen und nicht im Datenteil zu suchen. Alle oben genannten Prüfoptionen prüfen die Indizes gründlich und sollten daher die meisten Fehler finden.

Die Prüfung unterstützt verschiedene Optionen wie QUICK, FAST, MEDIUM, EXTENDED und CHANGED. phpMyAdmin verwendet standardmäßig keine der Option. Es wird automatisch die MEDIUM-Variante ausgeführt. Dabei werden Zeilen gescannt, um zu bestätigen, dass gelöschte Verknüpfungen in Ordnung sind. Diese Option berechnet auch eine Schlüsselprüfsumme für die Zeilen und bestätigt diese mit einer berechneten Prüfsumme für die Schlüssel.

Das Ergebnis einer Tabellenprüfung fällt positiv aus.

Nach der Ausführung des Tabellentests wird wie gewohnt ein einfacher Dialog mit den ausgeführten Kommandos angezeigt. Das eigentliche Testergebnis wird in einer Tabelle mit folgenden Spalten zurückgegeben:

- Table:                  Tabellenname

- Op:                        Immer check

- Msg_type:           status, error, info oder warning

- Msg_text:            Meldung

In obigem Beispiel ist die Prüfung erfolgreich verlaufen.

Es folgt die Tabellenanalysefunktion ANALYZE TABLE tabelle[,tabelle...]. Sie analysiert und speichert die Schlüsselverteilung der Tabelle. Während der Analyse ist die Tabelle mit einer Lesesperre gesperrt. Das funktioniert mit MyISAM und BDB-Tabellen.

Der Datenbankserver verwendet die gespeicherte Schlüsselverteilung, um zu entscheiden, in welcher Reihenfolge Tabellen verknüpft werden sollen, wenn Sie eine Verknüpfung auf etwas anderes als eine Konstante anlegen. Auch bei diesem Befehl gibt phpMyAdmin eine Tabelle mit folgenden Spalten zurück:

- Table:                   Tabellenname

- Op:                        Immer analyze

- Msg_type:           status, error, info oder warning

- Msg_text:            Meldung

Sie können die gespeicherte Schlüsselverteilung übrigens mit dem SHOW INDEX-Befehl überprüfen. Wurde eine Tabelle seit dem letzten ANALYZE TABLE-Befehl nicht geändert, wird sie auch keiner weiteren Analyse unterzogen.

Hinter dem Link Repariere Tabelle verbirgt sich der Befehl REPAIR TABLE. Er funktioniert nur bei MyISAM-Tabellen. In der Regel ist es nicht erforderlich diesen Befehl auszuführen. Scheinen die Tabellen dennoch unerwartet beschädigt, so lassen sich meist alle Daten einer MyISAM-Tabelle mit REPAIR TABLE retten. Auch bei der Reparaturfunktion wird eine Tabelle mit folgenden Informationen ausgegeben:

- Table:                   Tabellenname

- Op:                        Immer repair

- Msg_type:           status, error, info oder warning

- Msg_text:            Meldung

Wichtig ist die Ausgabe von Msg_type status. Sie ist idealerweise OK.

Für die Tabellenoptimierung ist der Link Optimiere Tabelle zuständig. Er führt das Kommando OPTIMIZE TABLE aus. Dieses Kommando sollte man verwenden, wenn man große Teile der Tabelle gelöscht oder bei Tabellen mit Zeilen variabler Länge viele Änderungen durchgeführt hat. Die Optimierungsfunktion gibt insbesondere unbenutzten Speicherplatz frei und hilft, Datendateien zu defragmentieren. Beim Einsatz von OPTIMIZE TABLE passiert Folgendes:

- Wenn die Tabelle gelöschte oder aufgeteilte Zeilen besitzt, werden diese repariert.

- Sind die Index-Seiten nicht sortiert, werden sie sortiert.

- Wenn die Statistiken nicht aktuell sind (und eine Reparatur nicht durch das Sortieren des Indexes durchgeführt werden könnte), werden sie aktualisiert.

- Auch bei diesem Hilfsmittel werden Informationen über die Ausführung ausgegeben. Nachfolgender Ausgabe ist zu entnehmen, dass die Tabelle bereits optimiert ist.

Die Tabelle ist in bester Verfassung.

Eine weitere Funktionen findet man noch bei den Hilfsmitteln: Leeren des Tabellenzwischenspeichern (FLUSH). Dieser Link entfernt die im Zwischenspeicher abgelegten Daten.

5.3 Operationen auf mehrere Tabellen anwenden

phpMyAdmin erlaubt Ihnen auch, Operationen auf mehrere Tabellen anzuwenden. Dazu wechseln Sie  in der Datenbankansicht auf das Register Struktur. In der Tabellenliste markieren Sie die gewünschten Tabellen und wählen dann aus dem Auswahlmenü die gewünschte Operation aus. Hier können Sie markierte Tabellen löschen, leeren, die Druckansicht aktivieren sowie Tabellen überprüfen, optimieren, reparieren und analysieren.

Die Optimierung mehrerer Tabellen auf einen Schlag.

5.4 Datenbankoperationen

Das Operationen-Register steht Ihnen übrigens nicht nur in der Tabellen-, sondern auch in der Datenbankansicht zur Verfügung. Hier stehen Ihnen folgende Funktionen zur Verfügung:

- Neue Tabelle in der Datenbank anlegen

- Datenbankkommentar hinzufügen

- Datenbank umbenennen

- Datenbank kopieren nach ...

- Kollation bearbeiten

- PDF-Seiten bearbeiten bzw. PDF-Schema anzeigen

Die Operationen, die Sie auf eine Datenbank anwenden können.

6 phpMyAdmin für Fortgeschrittene

phpMyAdmin bietet eine Vielzahl von Funktionen, die einem erst auf den zweiten Blick auffallen. Diesen erweiterten Funktionen wollen wir uns in diesem Kapitel widmen. Dazu gehören beispielsweise die Beziehungen.

6.1 Relationen

MySQL zählt zur Gruppe der relationalen Datenbanken, wobei phpMyAdmin lediglich eine grafische Schnittstelle ist, über die Sie die wichtigsten Aktionen ausführen. Bei einer relationalen Datenbank werden die einzelnen Daten in Datenfeldern gespeichert, die zu Datensätzen zusammengefasst sind. Mehrere gleichartige Datensätze bilden eine Relation oder Tabelle. Miteinander in Beziehung stehende Relationen bilden wiederum die relationale Datenbank.

Eine relationale Datenbank ist dadurch gekennzeichnet, dass in ihr die Daten in einem relationalen Schema dargestellt werden. In einem relationalen Modell werden die Daten in sogenannten Relationen, also Beziehungen, konkret in Tabellenform, dargestellt.

Öffnen Sie mit phpMyAdmin die Tabellenstruktur, so finden Sie dort den Verweis Beziehungsübersicht, über die Sie die Beziehungen einsehen und bearbeiten können. Konkret können Sie in dieser Ansicht drei Aktionen ausführen:

- Die Beziehungen der aktuellen Tabelle zu anderen definieren.

- Das Darstellungsfeld festlegen.

- Kommentare erzeugen.

Die Beziehungsansicht führt links die erzeugten Felder mit ihren Bezeichnungen auf. Über die Auswahlmenüs Interne Beziehungen zeigen Sie die bestehenden internen Relationen an. Nun können Sie jedes Feld mit einem Feld einer anderen Tabelle verknüpfen.

Das Bearbeiten der Beziehungen.

Auf diesem Weg können Sie beispielsweise Felder der Tabelle Software mit Informationen aus der Tabelle Hersteller verknüpfen. Diese Verknüpfung bringt verschiedene Vorteile, so bei den Abfragen über mehrere Tabellen hinweg, bei der Systemdokumentation oder bei den Lesezeichen.

6.2 Beziehungen mit dem Designer

phpMyAdmin verfügt mit dem Designer über eine weitere Funktion für die Bearbeitung der Relationen. Es handelt sich um ein AJAX-basiertes Modul, das die Bearbeitung der Beziehungen per Mausklick erlaubt. Sie können den Designer auch für den einfachen Zugriff auf die Datenbankstruktur verwenden. Der Designer taugt auch zum Import bzw. Export der Koordinaten in ein PDF-Schema.

Der Zugriff erfolgt über die Datenbankansicht. Klicken Sie auf das Register Designer, um die AJAX-basierte Tabellenansicht zu öffnen. Bei Datenbanken mit vielen Tabellen wird die Ansicht allerdings schnell unübersichtlich.

Beim ersten Zugriff auf den Designer präsentiert Ihnen die Übersicht in der oberen linken Ecke eine Symbolleiste und einzelne Symbole mit der jeweiligen Tabellenbezeichnung, die die Tabelle repräsentieren.

Der Designer in Aktion.

Zunächst sollten Sie über das linke Icon der Symbolleiste das Auswahlmenü aktivieren. Damit können Sie Tabellen ein- und ausblenden sowie aktivieren. Über das Icon links von jeder Tabellenbezeichnung können Sie die Strukturansicht der jeweiligen Tabelle öffnen. Der Zugriff auf die Struktur ist auch im rechten Bereich möglich, in dem Sie ebenfalls auf das Struktur-Icon klicken.

Über die Symbolleiste können Sie weitere Aktionen durchführen. Die Funktion der weiteren Icons sind:

- Speichere Position: Sichert die Position der Tabellen im Designer.

- Erzeuge Tabelle: Öffnet den Operationen-Dialog der Datenbank, der das Erzeugen einer neuen Tabelle erlaubt.

- Erzeuge Verbindung: Erlaubt der Erzeugen von Verbindungen zwischen den einzelnen Tabellen.

- Anzuzeigende Spalte bestimmen: Erlaubt es Ihnen, die Spalte zu bestimmen.

- Neu laden: Führt einen Reload der Ansicht durch.

- Hilfe: Öffnet die Hilfe, die Ihnen allerdings nicht viel weiterhelfen wird.

- Winklige Verbindung/direkte Verbindung: Erlaubt das Erstellen einer Relation.

- Am Gitter anordnen: Richtet die Tabellen am (unsichtbaren) Gitter aus.

- Alles klein/groß: Öffnet alle Spalten der angezeigten Tabellen bzw. blendet sie aus, falls Sie eingeblendet sind.

- Import/Export Koordinaten für das PDF Schema: Erzeugt eine PDF-Dokument der Ansicht.

- Verschiebe Menü: Verschiebt das Menü.

Die Relation zwischen zwei Tabellen im Designer.

Das Erstellen einer Relation ist einfach: Aktivieren Sie zunächst über die Symbolleiste die Verknüpfungsfunktion. Markieren Sie in der ersten Tabelle und dann in der zweite Tabelle den gewünschten Eintrag. Das Erzeugen der Relation bestätigen Sie mit Erzeuge Verknüpfung > OK.

Das Löschen einer Verknüpfung ist ebenfalls einfach: Klicken Sie mit der linken Maustaste auf eine Relation. Der Designer öffnet den Pop-up-Dialog Verknüpfung löschen. Bestätigen Sie den Vorgang mit einem Klick auf Löschen.

6.3 Datenbankdokumentation

Mithilfe von phpMyAdmin können Sie auch eine umfassende Datenbankdokumentation erzeugen. Diese kann sich insbesondere bei der Teamarbeit als nützlich erweisen, da sich damit jeder Mitarbeiter in gedruckter Form ein Bild vom jeweiligen System verschaffen kann.

In der Strukturansicht der Tabellen finden Sie den Verweis Druckansicht. Dieser erzeugt eine Detailsicht der in der Tabelle hinterlegten Informationen. Hier kann man sehr schön erkennen, welche Einträge vorhanden sind, wie es mit der Anzahl an Records bestellt ist, um welche Typen es sich handelt, wie groß sie sind, welche Kommentare angehängt wurden und, und, und. Über die Schaltfläche Drucken geben Sie die Dokumentation auf dem Drucker aus.

Ein Beispiel für die Druckansicht einer Tabelle.

Sie können auch mehrere Tabellen einer Datenbank ausdrucken. Dazu wechseln Sie zur Datenbankansicht, markieren die gewünschten Tabellen und wählen aus dem Auswahlmenü Druckansicht.

Die gezielte Auswahl der Tabellenvorschau.

6.4 PDF-Export

Die zweite wichtige Funktion für die Ausgaben von Datenbankinhalten und -informationen ist die PDF-Exportfunktion. Am Fuße der Operationen-Seiten der Datenbankansicht finden Sie den Verweis Beziehungsschema bearbeiten oder exportieren.

Das Erzeugen eines neuen Export-Seite.

Weisen Sie der Seite eine Bezeichnung zu und legen Sie gegebenenfalls fest, ob die Anordnung auf den internen Beziehungen oder auf dem FOREIGN KEY basieren soll.

Die Einstellungen für den PDF-Export.

Es folgt die Tabellenauswahl. Hier wählen Sie die gewünschten Tabellen aus. Über die X- und Y-Koordinaten bestimmen Sie die Position der Tabellen im Ausgabedokument. Ein Klick auf Klemmbrett anzeigen verdeutlicht die Funktion der Anordnung. Hiermit können Sie eine visuelle Darstellung der Datenbankinhalte und ihrer Abhängigkeiten erzeugen.

Das Klemmbrett in Aktion.

Entspricht das Layout Ihren Anforderungen, können Sie sich den verbleibenden Layout- und Gestaltungsmitteln für den PDF-Export widmen. Unter PDF-Schema auswählen können Sie folgende Optionen aktivieren:

- Gitterlinien anzeigen: Hinterlegt die visuelle Aufbereitung mit einem Gitternetz.

- Mehrfarbig: Kennzeichnet die Tabellen, Tabellennamen, Spalten und Verknüpfungen farbig. Das erleichtert bei einem Farbausdruck die Orientierung.

- Tabellendimensionen anzeigen: Zeigt die Tabellendimensionen im Ausgabedokument.

- Sollen alle Tabellen mit der gleichen Breite angezeigt werden?: Alle Tabellen werden mit der gleichen Breite angezeigt, unabhängig von ihrer tatsächlichen Größe.

- Strukturverzeichnis: Erzeugt eine Verzeichnisstruktur, ähnlich einer Kapiteleinteilung, mit

- 1 Hersteller

- 2 Software und

- 3 Beziehungsschema.

- Ausrichtung: Hier können Sie wählen, ob das Ausgabedokument im Hoch- oder Querformat erzeugt wird.

- Papiergröße: Schließlich können Sie das Format definieren. Sie haben die Wahl zwischen dem Standardwert DIN A4 und A3, A5, Letter und Legal.

Das erzeugte PDF-Dokument weist Links zwischen den Feldern auf. So können Sie beispielsweise von dem Beziehungsdiagramm zu den Detailinformationen springen – und umgekehrt.

Die Suche mit dem Abfrageeditor über mehrere Tabellen hinweg.

6.5 Abfragefenster

Dem aufmerksamen Beobachter wird es nicht entgangen sein, dass in der Datenbankansicht ein weiteres Hilfsmittel zur Verfügung steht: den Abfrageeditor. Während die Tabellensuchfunktion auf die Recherche in der jeweiligen Tabelle beschränkt ist, erlaubt der Abfrageeditor die Suche über mehrere Tabellen hinweg. Sie öffnen den Editor, indem Sie in der Datenbankansicht auf den gleichnamigen Reiter klicken.

Der Abfrageeditor erlaubt die Verwendung verschiedenster Suchkriterien. So können Sie die Suche gezielt auf Felder beschränken, Suchbegriffe festlegen und kombinieren und die zu durchsuchenden Tabellen festlegen.

Der Abfrageeditor präsentiert standardmäßig drei Spalten für die Angabe von Suchkriterien. Wem das zu viel ist und wer lieber mit weniger Spalten arbeitet, der kann die Einstellungen anpassen.

Wichtig für die Suche ist natürlich zunächst die Feldauswahl, die über Pop-up-Menü erfolgt. Wollen Sie die Suche beispielsweise in allen Hersteller-spezifischen Feldern durchführen, so wählen Sie den Eintrag Hersteller.* aus (siehe nachstehende Abbildung).

Die Feldauswahl unterstützt auch Platzhalter.

Bei der Sortierung können Sie wie gewohnt zwischen Absteigend und Absteigend wählen. In der nächsten Zeile kann die Option Zeige aktiviert werden. Aktivieren Sie diese Option, damit auch die Spalten in den Ergebnissen aufgeführt werden.

Wichtig für die Suche ist das Setzen von Suchkriterien. Hier können Sie die typischen Funktionen wie LIKE, LIKE %...%, NOT LIKE etc. anwenden. Weitere Bedingungen können Sie in das darunterliegende Textfeld eingeben. Dabei ist auch die Verwendung der logischen Verknüpfungen UND sowie ODER möglich.

Benötigen Sie weitere Zeilen und/oder Spalten, um weitere Suchkriterien verwenden zu können, bestimmen Sie über Kriterienzeilen hinzufügen/entfernen und Spalten hinzufügen/entfernen die neue Form und klicken abschließend auf Aktualisieren.

Über das Tabellenauswahlmenü kann die Tabellenwahl angepasst werden. Die eigentliche Suche starten Sie mit einem Klick auf SQL-Befehl ausführen. Der zugehörige Befehl wird in dem darüberliegenden Textfeld angezeigt. Das Ergebnis wird in einem neuen Dokument samt ausgeführtem SQL-Code sowie den möglichen Ergebnissen angezeigt.

6.6 Replikation

Ein absolutes Highlight unter den phpMyAdmin-Funktionen ist das Replikationsmodul, das bereits mit phpMyAdmin 3.3.0 eingeführt wurde. Es dient – wie seine Name schon besagt – der Synchronisation von Datenbeständen. Es ist insbesondere für alle jene Unternehmen von Bedeutung, die mit mehreren Servern arbeiten. Aber Replikation ist auch aus Gründen der Performance und Datensicherung von Bedeutung, weil replizierte Systeme Daten schneller ausliefern bzw. als (zusätzliche) Datensicherung dienen. Beide Anforderungen deckt die Replikationsfunktion von phpMyAdmin 4.0 ab.

Der Replikationsmechanismus ist über die Menüleiste von phpMyAdmin verfügbar. Beim ersten Zugriff wird auch schnell das Prinzip deutlich: Der Replikationsmechanismus von phpMyAdmin verlangt einen Master und einen Slave.

Dabei ist der eine Server die Quelle, der zweite das Ziel. Ein gegenseitiger Datenabgleich ist nicht möglich. Sie haben lediglich die Wahl, ob Sie eine vollständige oder Teilsynchronisation durchführen. Sie benötigen daher also zwei MySQL, auf die Sie mit phpMyAdmin zugreifen und die Replikation konfigurieren können. Allerdings kann der Datenbankmanager nicht alle Aspekte der MySQL-Replikation steuern.

Um die Replikation nutzen zu können, sind auf Seiten des Masters und des Slaves Anpassungen der MySQL-Konfigurationsdatei my.cnf erforderlich. Das phpMyAdmin keinen Zugriff auf diese Konfigurationsdateien hat, müssen die entsprechenden Anpassungen manuell vorgenommen werden.

Zunächst erzeugen Sie die Master- und dann die Slave-Konfiguration. Folgen Sie dazu auf der Seite Replikation dem Verweis Konfigurieren. Dabei stehen Ihnen über das Auswahlmenü zwei Konfigurationsmethoden zur Auswahl:

- Alle bis auf bestimmte Datenbanken replizieren: Diese Option ist nützlich, wenn Sie die Mehrzahl aller Datenbank replizieren wollen.

- Nur bestimmte Datenbanken replizieren: Hier bestimmen Sie im darunter befindlichen Auswahlmenü die gewünschten Datenbanken. Sie können mit gedrückter Strg-Taste verschiedene Ablagen auswählen.

Der Replikationsmechanismus blendet unterhalb des Auswahlbereichs den Code ein, den Sie im Abschnitt [mysqld] der MySQL-Konfigurationsdatei my.cnf einfügen. Dieser könnte bei der Replikation zweiter Datenbank wie folgt aussehen:

server-id=5033916

log_bin=mysql-bin

log_error=mysql-bin.err

binlog_do_db=neuedatenbank1

binlog_do_db=neuedatenbank2

Führen Sie anschließend einen Neustart des MySQL-Servers aus. Daraufhin sollten Sie eine Meldung zu sehen bekommen, dass dieser Server als Master konfiguriert ist.

Der Master ist als solcher konfiguriert.

Beim erneuten Zugriff auf das Replikationsmenü zeigt Ihnen dieses an, dass Sie die eine MySQL-Installation als Master konfiguriert haben. Sie können den Status und die verbundenen Slaves anzeigen sowie Benutzer zum Replikations-Slave hinzufügen.

Die Funktionen des Replikation-Masters.

Als Nächstes sollten Sie einen Benutzer für den Replikation-Slave anlegen, denn der Master benötigt einen separaten Account, der für die Replikation verwendet wird. Da der Slave mit diesen Account-Daten den Zugang zum Master herstellt, muss dieser Zugang vor der Slave-Konfiguration angelegt werden.

Folgen Sie dazu dem Verweis Benutzer für den Replication-Slave hinzufügen und geben Sie den Benutzernamen, dass Passwort und gegebenenfalls den Host an. Mit OK speichern Sie die neue Benutzerkonfiguration. In administrativen Rechten sind standardmäßig die beiden Berechtigungen REPLICATION CLIENT und REPLICATION SLAVE angelegt.

Der Benutzer für den Replikation-Slave wird angelegt.

Als Nächstes wenden Sie sich auf dem zweiten System der Slave-Konfiguration zu. Dort öffnen Sie das zugehörige Formular und geben den zuvor angelegten Benutzernamen, das Passwort, die IP-Adresse des Masters und den Port an. Mit OK bestätigen Sie die Einstellungen.

Die Slave-Konfiguration.

Um alles weitere kümmert sich die Replikationsfunktion. Auf Seiten des Slave können Sie den Status und die Konfiguration einsehen. Wenn Sie alle Datenbanken für die Spiegelung aktiviert haben, zeigt Ihnen die Datenbankübersicht dies in der Spalte Master Replikation mit dem Status Repliziert an.

Die Replikation ist erfolgreich ausgeführt.

Der Registerkarte Status können Sie übrigens immer auch den Status der jeweiligen Replikationskonfiguration entnehmen. Bei einem Slave wird dort beispielsweise der folgende Hinweis eingeblendet:

Dieser MySQL Server arbeitet als Slave im Replikations-Prozess.

Einen entsprechenden Hinweis finden Sie in der Statusanzeige des Masters.

6.7 Änderungen verfolgen

Datenbanken und die darin befindlichen Tabellen stellen vielfach ganz zentrale Informationen und gelegentlich auch Funktionen bereit. In einer typischen IT-Infrastruktur arbeiten meist mehrere Personen an diesen Daten. Daher ist es besonders wichtig, dass man Änderungen verfolgen kann. Auch das ist mit phpMyAdmin möglich. Wie es sich für ein professionelles Datenbankmanagementsystem gehört, verfügt MySQL über ein Logging-System, das alle Änderungen an den Datenbanken aufzeichnet. Dabei werden insbesondere der Bearbeiter und seine IP-Adresse, das Datum und die Uhrzeit der Änderungen aufgezeichnet.

Der Datenbankmanager phpMyAdmin agiert hier ein wenig anders. Er besitzt zwar einen Verfolgungsmechanismus, aber der Aufzeichnung der Änderungen muss auf Tabellenbasis explizit zugestimmt werden. phpMyAdmin macht sich dabei zwei Prinzipien zunutze: Versionierung und Schnappschüsse. Mit Versionierung ist die Kennzeichnung der Tabellenversionen durch ein eigenes Nummerierungsschema gemeint, Schnappschüsse zeichnen die Struktur und Indizes auf.

Leider lässt sich die Nachverfolgung nicht auf ganze Datenbanken, sondern immer nur auf Tabellen anwenden. Die Tracking-Funktion ist daher auch nur in der Tabellenansicht über die Menüleiste verfügbar.

Die Konfiguration der Nachverfolgung.

Um das Tracking für eine Tabelle zu aktivieren, öffnen Sie die Tabellenübersicht oder eine Tabelle und klicken in der Menüleiste auf Nachverfolgung. In dem zugehörigen Dialog konfigurieren Sie die Details der Verfolgung. Sie können hierfür zehn typische Datenbeschreibungs- und Bearbeitungsfehle für das Tracking auswählen. Klicken Sie auf Erzeuge Version, um die erste Version der Tabelle zu generieren.

Version 1 der Tabelle wurde angelegt.

Nach dem Erzeugen von Version 1 Ihrer Tabelle präsentiert phpMyAdmin Ihnen die Übersicht, die die wichtigsten Eigenschaften der erster Version aufführt, also zugehörige Datenbank, Tabellenname, Versionsnummer, Entstehungs- und Aktualisierungsdatum und den Status. An Ende der Zeile finden Sie zwei wichtige Verweise, über die Sie den Verfolgungsbericht und den Schnappschuss einsehen können.

Dem Verfolgungsbericht können Sie detailliert die ausgeführten Befehle und Änderungen entnehmen. Das zugehörige Formular stellt Ihnen auch eine Filter zur Verfügung, mit dem Sie die Ansicht auf verschiedene Informationen beschränken können. Mögliche Filterkriterien sind beispielsweise Daten und Struktur, Datum, Benutzer und Export.

Die Kennzeichnung, dass die Tabelle nachverfolgt wird.

phpMyAdmin kennzeichnet übrigens alle Tabellen, für die Sie die Nachverfolgung aktiviert haben, in der Tabellenübersicht mit einem Auge. Mit einem Klick auf das Auge öffnen Sie die Nachverfolgungsinformationen.

Ein Manko der Tracking-Funktion ist sicherlich, dass man sie nicht automatisieren kann.

6.8 Einstellungen

Beim Einrichten von phpMyAdmin haben Sie über das Setup verschiedensten Einstellungen und Anpassungen vorgenommen. Das Setup können Sie jederzeit über das Unterverzeichnis /setup abrufen, sofern Sie es aus Sicherheitsgründen nicht entfernt haben (was in jedem Fall ratsam ist).

Sie können die Einstellungen von phpMyAdmin über das Einstellungen-Menü einsehen und bearbeiten. Das Menü präsentiert Ihnen beim Zugriff Deine Einstellungen verwalten die Import- und Exportfunktion, die es Ihnen erlaubt, die aktuelle phpMyAdmin-Konfiguration in einer JSON-Datei zu exportieren bzw. eine bereits bestehende Datei zu importieren. Über den Bereich Zurücksetzen können Sie Ihre phpMyAdmin-Installation auch auf den Ausgangszustand zurücksetzen. Sollte das Verzeichnis Setup noch existieren, können Sie über Weitere Einstellungen das Setup erneut aufrufen.

Für nachträgliche Anpassungen der phpMyAdmin-Umgebung ist das Einstellungen-Menü zuständig.

Das Einstellungen-Menü erlaubt Ihnen außerdem die Anpassung der Funktionen, der SQL-Abfragen, des Haupt- und Navigations-Panels sowie der Import- und Exportfunktionen. Den wichtigsten Einstellungen für diese Bereiche sind wir im Setup bereits begegnet. Sie müssen daher nicht erneut beschrieben werden.

6.9 Out-of-the-Box: XAMPP, WampServer & Co.

In der Vergangenheit sind verschiedene Lösungen entstanden, die den Apache-Webserver, den MySQL-Server, die PHP-Installation und weitere Tools kombinieren. Auch phpMyAdmin gehört zur Basisausstattung solcher Lösungen, die sich hervorragend als Test- und Entwicklungsumgebungen für den Aufbau von typischen webbasierten Applikationen wie Content-Managementsysteme, Blogs und Online-Shops dienen. All diesen Paketen ist gemein, dass Sie auch phpMyAdmin integrieren. Der Vorteil: Die Inbetriebnahme der verschiedenen Module inklusive phpMyAdmin ist kinderleicht.

Das XAMPP Control Panel dient unter Windows der Steuerung der XAMPP-Umgebung.

Die wohl bekannte Lösung dieser Art ist XAMPP (http://www.apachefriends.org) von Apachefriends-Team. Sie stellt unter Windows eine komfortable Steuerung zur Verfügung. Der Aufruf von phpMyAdmin erfolgt in der MySQL-Zeile über den Admin-Button. XAMPP ist für Linux, Mac OS X und Windows verfügbar.

Neben XAMPP gibt es weitere interessante Lösungen, beispielsweise den WampServer (http://www.wampserver.com/en/), eine reine Windows-Lösung, und EasyPHP (http://www.easyphp.org), ebenfalls eine Windows-basierte Umgebung.

7 Server-Administration

phpMyAdmin taugt längst nicht nur für das Erzeugen und Bearbeiten von Datenbanken, sondern auch für typische administrative Aufgaben wie die Benutzerverwaltung, das Abrufen von Systeminformationen etc. In diesem Kapitel widmen wir uns derlei Aufgaben und ihrer praktischen Umsetzung.

Ob Sie als Admin oder als ein anderer Benutzer eingeloggt sind, verrät Ihnen die phpMyAdmin-Startseite.

Wenn Sie als administrativer Anwender in phpMyAdmin unterwegs sind, zeigt Ihnen das Tool Ihre Kennung in der Startseite an. Folgende Funktionen stehen außerdem nur dem Administrator zur Verfügung:

- MySQL-Laufzeit-Informationen anzeigen

- MySQL-System-Variablen anzeigen

- Prozesse anzeigen

- Benutzertabellen neu laden

- Rechte

- Datenbanken

- Exportieren

7.1 Benutzerverwaltung

Die wichtigste administrative Aufgabe ist sicherlich die Benutzerverwaltung, die über den Link Benutzer in der Menüleiste des phpMyAdmin-Startseite verfügbar ist. Dabei übernimmt das MySQL-Berechtigungssystem eine zentrale Aufgabe: Es stellt sicher, dass alle Benutzer nur genau die Aktionen durchführen dürfen, zu denen sie berechtigt sind. Stellen Sie mit phpMyAdmin die Verbindung zu einem MySQL-Server her, erfolgt die Benutzeridentifizierung durch den Host, von dem aus der Zugriff erfolgt, und durch den Benutzernamen, den Sie verwenden. Das System gewährt Berechtigungen gemäß dieser Informationen. Dabei zieht MySQL sowohl Hostnamen als auch Benutzernamen heran, um den Anwender zu identifizieren.

Die MySQL-Zugriffskontrolle läuft in zwei Phasen ab:

- Phase 1: Der Server prüft, ob der Anwender das Recht besitzt, sich mit diesem Server zu verbinden.

- Phase 2: Verfügt der Anwender über das Recht, sich zu verbinden, überprüft der Server jede Anfrage, die man durchführt, um festzustellen, dass man die erforderlichen Rechte für die Ausführung besitzt. Will man etwa eine Tabelle in einer Datenbank löschen, stellt der Server sicher, dass der Anwender die SELECT-Berechtigung für die Tabelle bzw. die DROP TABLE-Berechtigung für die Datenbank besitzt.

Die Benutzerverwaltung führt in der sogenannten Benutzerübersicht zunächst die bestehenden User samt Host, Kennwort, globalen Rechten (die SQL-Rechte werden auch bei der deutschen Benutzerschnittstelle auf Englisch angezeigt) sowie die Vererbung aus. Über das Stiftsymbol am Ende einer jeden Benutzerzeile lässt sich jeder Eintrag bearbeiten.

Auch hier steht linker Hand wieder eine Markierungsleiste zur Verfügung, mit der Sie Benutzereinträge gezielt markieren und bestimmte Aktionen, z. B. das Löschen, anwenden können.

Es folgt der Link Benutzer hinzufügen, über den Sie ein umfangreiches Formular zum Erzeugen eines neuen Benutzers öffnen. Außerdem stehen Ihnen verschiedene Optionen für das Löschen von Benutzereinträgen wie auch eine Reload-Funktion für das erneute Einlesen der Berechtigungen zur Verfügung.

Schauen wir uns zunächst die Benutzerübersicht näher an. In der Spalte Benutzer werden die bereits erzeugten Benutzer in alphabetischer Reihenfolge aufgeführt. MySQL kommt erhält standardmäßig mehrere Benutzer, die über phpMyAdmin administrative und alltägliche Aufgaben erledigen können. Es folgt die Spalte Host, in der die Hosts mit dem Hostnamen bzw. die IP-Adresse aufgeführt werden, von denen der jeweilige Benutzer auf MySQL zugreifen kann.

Die Benutzerverwaltung von phpMyAdmin.

Die Spalte Passwort zeigt durch die Ausgabe Ja/Nein an, ob für den jeweiligen Benutzer ein Passwort gesetzt ist. Ein gesetztes Passwort kann über phpMyAdmin selbst nicht angezeigt werden, da es verschlüsselt von MySQL verwaltet wird.

Es folgen die Informationen zu den globalen Rechten und zur Vererbung (Grant). Steht in der Spalte GRANT ein Ja, so kann der Benutzer seine Berechtigungen an andere Benutzer vererben.

Wie wir oben gesehen haben, klicken Sie auf den Link Benutzer hinzufügen, um einen solchen zu erzeugen. Im zugehörigen Formular legen Sie die Login-Informationen, die Einstellungen für die globalen Rechte sowie gegebenenfalls die Ressourcenbeschränkungen fest.

Ein neuer Benutzer entsteht – die allgemeinen Einstellungen des oberen Formularbereichs.

Unter Anmelde-Informationen legen Sie zunächst fest, ob Sie das Textfeld verwenden möchten oder ob Sie mit der Option Jeder Benutzer einen anonymen Anwender erzeugen wollen.

Ähnlich verhält es sich mit der Einstellung für den Host. Hier haben Sie die Wahl zwischen den Optionen Jeder Host für anonym, Lokal für den Zugriff vom lokalen System, Verwende Hosttabelle für die Nutzung einer Tabelle und Textfeld verwenden. Entscheiden Sie sich für die Verwendung einer Hosttabelle, müssen die Hostnamen bzw. deren IP-Adressen in der Datei mysql.hosts gespeichert werden. Wollen Sie hingegen das Textfeld nutzen, so geben Sie durch Leerzeichen getrennt die einzelnen Hostnamen bzw. die zugehörigen IP-Adressen ein.

Auch wenn die Einrichtung eines Benutzers ohne Kennwort möglich ist, sollten Sie möglichst immer ein Kennwort verwenden. Die Option Kein Kennwort sollte nur gezielt eingesetzt werden. Bei der Verwendung eines Passwortes muss dieses im Textfeld Wiederholen erneut eingegeben werden.

Die Konfiguration der globalen Rechte.

Es folgen die Einstellungen für die globalen Berechtigungen. Hier legen Sie fest, welche MySQL-Befehle von dem neuen Benutzer erzeugt werden können. Die Befehle sind in die Kategorien Daten, Struktur und Administration unterteilt. Die aktivierbaren Befehle im Überblick:

- Daten: SELECT, INSERT, UPDATE, DELETE, FILE.

- Struktur: CREATE, ALTER, INDEX, DROP, CREATE TEMPORARY TABLES, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EXECUTE, CREATE VIEW, EVENT, TRIGGER.

- Administration: GRANT, SUPER, PROCESS, RELOAD, SHUTDOWN, SHOW DATABASES, LOCK TABLES, REFERENCES, REPLICATION CLIENT, REPLICATION SLAVE, CREATE USER.

Es versteht sich von selbst, dass „normale“ Benutzer kaum administrative Kommandos ausführen müssen und dass Administratoren weitreichende Berechtigungen benötigen.

Schließlich sieht die Benutzerverwaltung die Ressourcenbeschränkung pro User vor. Hier stehen Ihnen folgende Optionen zur Verfügung:

- MAX QUERIES PER HOUR: Beschränkt die maximal zulässige Anzahl an Abfragen pro Stunde.

- MAX UPDATES PER HOUR: Diese Option beschränkt die maximal zulässigen Updates pro Stunde.

- MAX CONNECTIONS PER HOUR: Hier kann die maximal zulässige Zahl von Verbindungen zur Datenbank festgelegt werden.

- MAX USER_CONNECTIONS: Mit dieser Konfiguration können Sie die maximale Anzahl von Benutzerverbindungen bestimmen.

Die Standardvorgabe Null hebt die Beschränkungen auf.

Mit einem Klick auf OK wird der neue Benutzer erzeugt. Dann landen Sie in der Benutzerübersicht, in der zunächst die ausgeführten SQL-Kommandos und die Benutzerdetails aufgeführt werden (siehe nachstehende Abbildung).

Ein neuer Benutzer ist entstanden.

Nach den Erstellen eines Benutzers können Sie dessen Einstellungen editieren, indem Sie auf Rechte ändern klicken. Im zugehörigen Dialog finden Sie im unteren Dokumentenbereich die datenbankspezifischen Funktionen. Über das Auswahlmenü Datenbankspezifische Rechte können Sie eine Datenbank auswählen und dann im Folgedialog die Rechte dafür definieren.

Die Benutzereinstellungen nach dem Erzeugen eines neuen Benutzers.

Die Benutzerübersicht erlaubt neben dem Ändern des Passwortes auch die Bearbeitung der Anmeldeinformationen. Wenn Sie einen neuen Benutzer mit identischen Rechten erstellen wollen, haben Sie die Wahl zwischen vier Optionen. Sie können

- den alten Benutzer beibehalten,

- den alten Benutzer von den Benutzertabellen löschen,

- dem alten Benutzer alle Rechte entziehen und ihn anschließend löschen und

- den alten Benutzer löschen und anschließend die Benutzertabellen neu laden.

Die Benutzerverwaltung erlaubt nicht nur das Erzeugen und Bearbeiten von Benutzern, sondern natürlich auch das Löschen. Die Vorgehensweise: Sie öffnen die Benutzerübersicht, markieren die Benutzereinträge, die entfernt werden sollen, und wählen unter Die ausgewählten Benutzer löschen die geeignete Option aus.

Die Funktionen für das Löschen von Benutzern.

Unter Die ausgewählten Benutzer löschen steht folgende Option zur Verfügung:

- Die gleichnamigen Datenbanken löschen: Aktivieren Sie zusätzlich diese Option, so wird eine gleichnamige Datenbank ebenfalls gelöscht.

Ein echtes Manko von phpMyAdmin und MySQL ist sicherlich, dass das Erzeugen einer typischen Benutzergruppe nicht direkt möglich ist.

Was mit dem Datenbankberechtigungen funktioniert, können Sie auch auf Tabellen anwenden. Öffnen Sie dazu die Rechtekonfiguration eines Benutzers. Im Bereich Datenbankspezifische Rechte klicken Sie in der Aktionsspalte auf das Bearbeiten-Icon.

Im folgenden Dialog finden Sie im unteren Bereich die Einstellungen Tabellenspezifische Rechte. Wählen Sie die Tabelle aus, deren Rechte Sie bearbeiten wollen. Abhängig von Tabellentyp erlaubt phpMyAdmin das Setzen von Tabellenberechtigungen.

Das Setzen von Tabellenberechtigungen.

7.2 Datenbank und Server-Informationen

Neben der Benutzerverwaltung ist die zweite wichtige Aufgabe eines Administrators die Systemüberwachung. Hierfür benötigt er relevante Datenbank- und Server-Informationen, die Auskunft über die Systemumgebung liefern. Diese Informationen sind über die phpMyAdmin-Startseite und die Datenbankübersicht verfügbar.

Das Aktivieren der Datenbankstatistik.

Bevor Sie datenbankspezifische Informationen abrufen können, müssen Sie die sogenannte Datenbankstatistik zunächst aktivieren. Dazu öffnen Sie über die phpMyAdmin-Startseite die Datenbankansicht. Hier werden die erzeugten Ablagen aufgeführt. Über den Link Datenbankstatistiken aktivieren müssen Sie die zugehörige Funktion zunächst einschalten. Sie ist standardmäßig deaktiviert. Der Grund: Das Aktivieren der Datenbankstatistiken kann ein erhebliches Datenaufkommen zwischen dem Web- und dem MySQL-Server zur Folge haben. Die Verarbeitung bzw. das Einlesen der Datengröße und der Indizes für alle Tabellen aller auf dem MySQL-Server abgelegten Datenbanken beansprucht – immer natürlich abhängig der Größe der Datenbestände – erhebliche Ressourcen.

Nach der Aktivierung landen Sie in der Datenbankstatistik. Dort werden die Datenbank mit der Anzahl der Tabellen, die Datengröße, Indexgröße und Gesamtgröße aufgeführt. Standardmäßig erfolgt die Sortierung alphabetisch. Sie kann für die Datenbankbezeichnung, Anzahl der Tabelle, Daten- und Index- sowie Gesamtgröße durch einen Klick auf den jeweiligen Spaltenkopf angepasst werden. Mit einem zweiten Klick wird die ursprüngliche Reihenfolge wiederhergestellt.

Die Datenbankstatistik von phpMyAdmin.

Am Ende einer jeden Datenbankzeile finden Sie das Icon Rechte überprüfen. Im zugehörigen Dialog werden für die spezifische Ablage die Benutzer, Host, Typ, Rechte und Grant-Info angezeigt. Über die Spalte Aktion können Sie die bestehende Konfiguration bearbeiten, also insbesondere die Datenbank- und Tabellenberechtigungen.

Über die Datenbank- bzw. Serveransicht finden Sie weitere Detailinformationen zur aktuellen Installation. Über den Menübefehl Status können Sie beispielsweise den Server-Status, die Server-Variablen und -Prozessinformationen abrufen. In der Kopfzeile werden zunächst Informationen zur Laufzeit (Wie lange ist der Server in Betrieb?), darunter Details zum Server-Traffic (Welche Datenmengen sind geflossen?), Abfragestatistiken (Wie viele und welche Abfragen wurden bearbeitet?) und weitere Statusvariablen angezeigt.

Der MySQL-Serverstatus.

Über den Menübefehl Variablen rufen Sie verschiedene Einstellungen des MySQL-Servers ab. Dabei handelt es sich überwiegend um Einstellungen der MySQL-Konfigurationsdatei. Das Interessante an dieser Übersicht: Sie können die Einstellungen bearbeiten, indem Sie den Mauszeiger in die betreffende Konfigurationszeile führen und auf Bearbeiten klicken.

Mithilfe von phpMyAdmin kann man auch die MySQL-Server-Konfiguration einsehen und bearbeiten.

8 phpMyAdmin-Konfigurationsoptionen im Überblick

Nahezu alle Konfigurations- und Anpassungsmöglichkeiten von phpMyAdmin werden über die Konfigurationsdatei config.inc.php vorgenommen. Einigen sind wir im bisherigen Verlauf dieses Buches bereits begegnet. Andere warten nur darauf, von Ihnen entdeckt zu werden. In diesem Kapitel werden die wichtigsten phpMyAdmin-Konfigurationsparameter beschrieben.

Beachten sollten Sie Folgendes: Während die meisten funktionalen Schalter in der config.inc.php zu finden sind, werden Designparameter für die Farbgestaltung, Schriften etc. in der Konfigurationsdatei themes/themename/layout.inc.php vorgenommen. Darüber hinaus sind auch Anpassungen der Dateien config.footer.inc.php und config.header.inc.php denkbar, um Site-spezifischen Code im Kopf- und Fußbereich der phpMyAdmin-Schnittstelle zu platzieren.

Die Auflistung erhebt keinen Anspruch auf Vollständigkeit. Beachten Sie außerdem, dass Konfigurationsoptionen von Version zu Version kommen und gehen können.

8.1 Allgemeines

$cfg['PmaAbsoluteUri'] = '  ';

Mit diesem Schalter legen Sie die vollständige URL der phpMyAdmin-Installation fest. Ein Beispiel:

http://www.server.de/pfad_zum_phpMyAdmin_verzeichnis/

phpMyAdmin benötigt diese Einstellung, da sie vom HTTP-Protokoll (RFC2616, Abschnitt 14.30) gefordert wird. Wichtig ist, dass die URL mit einem Schrägstrich endet. Außerdem darf die URL nur gültige Zeichen enthalten. Auch zwischen Groß- und Kleinschreibung ist zu unterscheiden. Seit Einführung von phpMyAdmin 2.3.0 kann man das Feld auch unausgefüllt lassen. In diesem Fall versucht der Datenbankmanager, den korrekten Wert zu ermitteln.

$cfg['PmaAbsoluteUri_DisableWarning'] = TRUE;

Standardmäßig wird eine Warnung ausgegeben, wenn Sie das Feld $cfg['PmaAbsoluteUri'] freilassen und das System sich an der automatischen Erkennung der URL versucht. Gelingt die Erkennung, kann diese Option deaktiviert werden.

$cfg['blowfish_secret'] = 'zeichenfolge';

Mit dieser Option aktivieren Sie die Cookie-Authentifizierung, wobei der Blowfish-Algorithmus für die Verschlüsselung des Passwortes verwendet wird. Wenn mindestens eine Server-Konfiguration die Cookie-Prüfung verwendet, geben Sie hier den Ausdruck ein, der mittels Blowfish verschlüsselt wird.

8.2 Server-Konfiguration

$cfg['Servers'] = array;

Seit der Einführung von phpMyAdmin 1.4.2 unterstützt der Datenbankmanager die Administration mehrerer MySQL-Servern. Hierfür wurde das $cfg['Servers']-Array eingeführt, mit dem man die Login-Daten für die verschiedenen Server verwaltet. Der erste Abschnitt $cfg['Servers'][$i]['host'] enthält den Hostnamen des ersten MySQL-Servers, der zweite Abschnitt die Konfiguration des zweiten Servers etc. Verwalten Sie lediglich einen Server, so lassen Sie den $cfg['Server']-Eintrag einfach frei.

$cfg['Servers'][$i]['host'] = 'localhost';

Hier hinterlegen Sie den Hostnamen bzw. die IP-Adresse des $i-ten MySQL-servers, beispielsweise localhost.

$cfg['Servers'][$i]['port'] = '  ';

Hier hinterlegen Sie die Portnummer des MySQL-Servers. Der Standardwert ist 3306, wenn Sie die Option freilassen. Verwenden Sie localhost als Hostnamen, so ignoriert MySQL die Portnummer und stellt die Verbindung mit den Sockets her. Wenn Sie beispielsweise eine Verbindung zu einem Nicht-Standard-Port herstellen wollen, sollten Sie die IP-Adresse 127.0.0.1 oder aber den tatsächlichen Hostnamen aus $cfg['Servers'][$i]['host'] verwenden.

$cfg['Servers'][$i]['socket'] = '  ';

Hier geben Sie den Pfad zum Socket an, den Sie verwenden wollen. Um das Socket-Feature nutzen zu können, muss mindestens PHP 3.0.10 oder höher auf dem Server ausgeführt werden. Standardmäßig ist diese Konfiguration leer.

$cfg['Servers'][$i]['ssl'] = TRUE;

Hier legen Sie fest, ob eine SSL-Verbindung zum MySQL-Server aufgebaut wird.

$cfg['Servers'][$i]['connect_type'] = 'tcp';

Hier legen Sie den Verbindungstyp zum MySQL-Server fest. Als alternative Optionen stehen socket und tcp zur Verfügung. tcp ist die Standardeinstellung, da diese von nahezu allen MySQL-Serverversionen unterstützt wird. Socket ist außerdem nicht auf allen Plattformen verfügbar. Wollen Sie dennoch den Socket-Modus verwenden, müssen MySQL und der Webserver auf dem gleichen Rechner ausgeführt werden.

$cfg['Servers'][$i]['extension'] = 'mysql';

Hier legen Sie fest, welche PHP-MySQL-Erweiterungen für die Verbindung verwendet werden sollen. Folgende Werte sind zulässig:

- mysql: Die klassische MySQL-Erweiterung. Dies ist der empfohlene Wert und die Standardeinstellung.

- mysqli: Die ist eine verbesserte MySQL-Erweiterung, die mit der Einführung von PHP 5.0.0 verfügbar sein wird. Dies ist die empfohlene Methode für die Verbindungsaufnahme mit einem MySQL 4.1.x-Server. Beachten sollte man, dass die MySQL 4.1-Unterstützung von phpMyAdmin bislang lediglich experimenteller Natur ist.

$cfg['Servers'][$i]['compress'] = 'compress';

Hier legen Sie fest, ob eine komprimierte Verbindung für die Verbindungsaufnahmen zum MySQL-Server verwendet wird.

$cfg['Servers'][$i]['controluser'] = 'pma';

$cfg['Servers'][$i]['controlpass'] = '  ';

Dies ist ein spezieller Account, der so genannte Control-User. Er ist für zwei Spezialaufgaben gedacht: Zum einen soll eine Multiuser-Installation (HTTP- oder Cookie-Authentifizierung) möglich sein und zum andern sollen alle relationalen Funktionen nutzbar sein. Verwendet man die HTTP- oder Cookie-Authentifizierung, so müssen die Details eines MySQL-Accounts verfügbar sein, insbesondere die SELECT-Berechtigungen der Tabellen mysql.user (alle Spalten außer der Spalte Password), mysql.db (alle Spalten) und mysql.tables_priv (alle Spalten außer Grantor/Timestamp). Mit diesem Account können Sie prüfen, welche Datenbank Benutzer beim Einloggen zu sehen bekommen.

$cfg['Servers'][$i]['auth_type'] string ['http'|'cookie'|'config']

Mit dieser Konfiguration legen Sie den Authentifizierungsmechanismus für diesen Server fest. Es stehen drei Optionen zur Verfügung.

- config ($auth_type = 'config'): Bei diesem Verfahren werden der Benutzername und das Passwort im Klartext in der config.inc.php gespeichert.

- cookie ($auth_type = 'cookie'): Diese Option erlaubt die Authentifzierung und das Einloggen mittels Cookies.

- http ($auth_type = 'http'): Bei diesem Verfahren kann man sich per HTTP-Authentifizierung einloggen.

$cfg['Servers'][$i]['user'] = 'root';

$cfg['Servers'][$i]['password'] = '  ';

Hier ist das Benutzername/Passwort-Paar hinterlegt, das Sie für die Verbindungsaufnahme zum MySQL-Server verwenden. Es ist nicht für die HTTP- oder Cookie-Authentifizierung erforderlich und ist daher in der Regel leer.

$cfg['Servers'][$i]['only_db'] = '  ';

Hier kann man eine Datenbank bzw. ein Datenbankarray angeben. Es werden lediglich die hier aufgeführten Datenbanken dem Benutzer angezeigt. Dabei ist auch die Verwendung von Platzhaltern möglich. Mit diesem Schalter kann man die Serverlast reduzieren und die Datenbank auch gezielt vor Benutzern verstecken. Hier ein Beispiel für die Angabe mehrerer Datenbanken:

$cfg['Servers'][$i]['only_db'] = array('db1', 'db2');

$cfg['Servers'][$i]['hide_db'] = 'zeichenfolge';

Erlaubt die Verwendung eines regulären Ausdrucks für das Verstecken von Datenbanken. Sie werden lediglich aus der Datenbankliste gestrichen, sind aber dennoch weiter verfügbar. Um alle Datenbanken, die mit dem Buchstaben a beginnen, zu verstecken, verwenden Sie folgende Konfiguration:

$cfg['Servers'][$i]['hide_db'] = '^a';

Um die beiden Datenbanken db1 und db2 zu verstecken, verwenden Sie folgende Konfiguration:

$cfg['Servers'][$i]['hide_db'] = '(db1|db2)';

$cfg['Servers'][$i]['verbose'] = '  ';

Dieser Schalter ist sinnvoll, wenn Sie mehrere Server mit phpMyAdmin verwalten wollen. Ist er gesetzt, so wird die angegebene Bezeichnung anstelle des Hostnamens im Auswahlmenü der Startseite aufgeführt. Auch dieses Feature können Sie nutzen, um nur bestimmte Datenbanken auf dem System für andere Benutzer sichtbar zu machen.

$cfg['Servers'][$i]['pmadb'] = '  ';

Hier geben Sie den Namen der Datenbank an, welche die verknüpfte Tabelleninfrastruktur besitzt. Sind Sie der einzige User der phpMyAdmin-Installation, können Sie diese speziellen Tabellen in der Datenbank speichern.

$cfg['Servers'][$i]['bookmarktable'] = '  ';

Seit der Einführung von phpMyAdmin 2.2.0 sind Bookmark-Suchen möglich. Diese Funktionalität ist nützlich, wenn identische Abfragen häufig durchgeführt werden.

$cfg['Servers'][$i]['relation'] = '  ';

Mit der Beziehungstabelle kann man die Relationen zwischen den Tabellen beschreiben. Diese Funktionalität wird für verschiedene Aufgaben genutzt:

- Visualisierung der Master-Tabelle und Navigieren in den Daten.

- Hinzufügen von ergänzenden Informationen.

- Editieren und Einfügen-Modus.

- Darstellung der Verknüpfungen der Tabelleneigenschaftenseite.

- Automatische Joins erzeugen.

- Grundlage für das Erzeugen eines PDF-Schemas der Datenbank.

$cfg['Servers'][$i]['table_info'] = '  ';

In der Tabelle table_info werden Tabelleninformationen hinterlegt.

$cfg['Servers'][$i]['table_coords'] = '  ';

$cfg['Servers'][$i]['pdf_pages'] = '  ';

phpMyAdmin erlaubt das Erzeugen von PDF-Seiten, die die Relationen zwischen den Tabellen zeigen. Dazu benötigen Sie zumindest zwei Tabellen (pdf_pages) und die Koordinaten (table_coords) für die Positionierung.

$cfg['Servers'][$i]['column_info'] = '  ';

phpMyAdmin kann Kommentare für jede Spalte einer Tabelle speichern. Diese werden in der Druckansicht angezeigt. Diese Informationen werden auch in der Tabelleneigenschafteninfo und in der Tabellenansicht angezeigt. Hier legen Sie fest, welche Informationen gespeichert werden können.

$cfg['Servers'][$i]['history'] = '  ';

Ab phpMyAdmin 2.5.0 kann man das SQL-Verlaufsprotokoll speichern, in dem alle erfolgreich ausgeführten manuellen Benutzerkommandos aufgeführt werden. Statt der tabellenbasierten History können Sie auch eine JavaScript-basierte verwenden. Mit dem Schalter $cfg['QueryHistoryMax'] legen Sie die maximale Anzahl von Einträgen im Protokoll fest. Bei jedem neuen Einloggen beginnt das Zählen von neuem. Hat man sich gerade erst eingeloggt und keinen SQL-Befehl über den SQL-Dialog vorgenommen, so ist der Verlauf leer.

$cfg['Servers'][$i]['verbose_check'] = 'TRUE  ';

phpMyAdmin unterstützt seit der Einführung von Version 2.5.0 die sogenannten MIME-Transformationen. Hierfür wurde die Tabelle column_info um drei neue Felder erweitert. Verwenden Sie die Default-Variable TRUE, prüft phpMyAdmin, ob die aktuellste Tabellenstruktur verfügbar ist. Falls nicht, wird eine entsprechende Warnmeldung ausgegeben. Alternativ kann die Option auch mit FALSE gesetzt werden, wenn man sich sicher ist, das die Tabellenstruktur auf dem neusten Stand ist.

$cfg['Servers'][$i]['AllowNoPasswordRoot'] = 'TRUE  ';

Mit dieser Konfiguration sorgen Sie dafür, dass der Root-Benutzer sich auch ohne Passwort einloggen kann.

$cfg['Servers'][$i]['AllowDeny']['order'] = '  ';

Verwenden Sie hier die Standardeinstellung ohne Wert, so ist die IP-basierte Authentifizierung deaktiviert. Es sind drei weitere Einstellungen möglich:

- deny,allow: Setzen Sie die Regelreihenfolge auf deny,allow, so wendet das System zunächst alle Deny- und dann die Allow-Regeln an. Alle Clients, für die keine Regeln angewendet werden können, haben Zugriff auf den Server.

- allow,deny: Setzen Sie stattdessen die Reihenfolge auf allow,deny, so wendet das System zunächst die Allow- und dann die Deny-Regeln an. Hier ist die Sache bei Clients, für die keine Regel angewendet werden, eine andere: Der Zugriff ist unterbunden.

- explicit: Schließlich kann der Wert explicit verwendet werden. In diesem Fall erfolgt die Authentifikation ähnlich wie bei deny,allow, allerdings gibt es eine weitere Restriktion: Die Kombination aus host/username muss in der Allow-Regel aufgeführt werden und darf nicht in der Deny-Regel auftauchen. Dies ist somit die sicherste Methode für den Zugriff auf einen MySQL-Server per phpMyAdmin.

$cfg['Servers'][$i]['AllowDeny']['rules'] = array ();

Das allgemeine Format für die Regeln sieht wie folgt aus:

<'allow' | 'deny'> <username> [from] <ipmask>

Wollen Sie alle Benutzer aufführen, verwenden Sie den Platzhalter %. Weitere Platzhalter sind:

- all für 0.0.0.0/0

- localhost für 127.0.0.1/8

Verwenden Sie eine leere Regel, so ist dies gleichbedeutend mit allow % from all, sofern Sie die Reihenfolge auf deny,allow gesetzt haben, oder mit deny % from all, wenn Sie die Regelreihenfolge auf allow,deny oder auf explicit gesetzt haben.

$cfg['ServerDefault'] = 1;

Haben Sie mehr als einen Server konfiguriert, können Sie sich mit der Konfiguration $cfg['ServerDefault'] automatisch zu dem angegebenen Server verbinden, ohne sich einloggen zu müssen. Ist lediglich ein Server konfiguriert, so muss diese Option gesetzt werden, in der Regel auf 1.

8.3 Weitere grundlegende phpMyAdmin-Einstellungen

$cfg['MaxDbList'] = Integer-Wert;

Gibt die maximale Anzahl von Datenbanknamen an, die in der Datenbankliste des Navigations-Frames aufgeführt werden.

$cfg['MaxTableList'] integer

Hiermit bestimmen Sie entsprechend die maximale Anzahl von Tabellen.

$cfg['OBGzip'] = 'auto';

Mit diesem Schalter legen Sie fest, ob Sie GZip-Output für die Zwischenspeicherung verwenden, um den HTTP-Transfer zu beschleunigen. Die Werte TRUE stehen für das Aktivieren und FALSE für das Deaktivieren dieser Funktion. Der Standardwert ist auto, wobei phpMyAdmin versucht, den Output zu komprimieren.

$cfg['PersistentConnections'] = FALSE;

Mit dieser Option legen Sie fest, ob persistente HTTP-Verbindungen zum Server aufgebaut werden. In der Standardeinstellung FALSE ist das nicht der Fall. Mit TRUE wird dieser Verbindungstyp aufgebaut.

$cfg['ExecTimeLimit'] = 300;

Mit dieser Konfiguration bestimmen Sie die Dauer an Sekunden, w lange ein Skript maximal ausgeführt werden kann. Der Standardwert ist 300 Sekunden. Setzen Sie den Wert auf Null, gibt es keine Zeitbeschränkungen. Diese Einstellung kommt beim Import und Export von Dump-Dateien zum Tragen, hat aber keine Wirkung, wenn die PHP-Umgebung im sicheren Modus ausgeführt wird.

$cfg['SkipLockedTables'] = FALSE;

Dieser Schalter markiert verwendete Tabellen und sorgt dafür, dass Datenbanken mit geschlossenen Tabellen angezeigt werden können.

$cfg['ShowSQL'] = TRUE;

Mit dieser Einstellung bestimmen Sie, ob die SQL-Abfragen, die phpMyAdmin generiert, im Ausgabedokument angezeigt werden oder nicht. Der Standard ist TRUE für die Aktivierung der Ansicht. Mit FALSE schaltet man die Ausgabe aus.

$cfg['AllowUserDropDatabase'] = FALSE;

Mit dieser Funktion legen Sie fest, ob „normale” Anwender (also nicht der Administrator, ihre eigene Datenbank löschen dürfen. In der Standardeinstellung FALSE wird der Link Datenbank löschen nicht angezeigt. Ein Löschen ist also nicht möglich.

$cfg['Confirm'] = TRUE;

Mit diesem Schalter legen Sie fest, ob Bestätigungs- oder Warnmeldungen ausgegebenen werden, wenn Datenverlust droht. TRUE aktiviert die Ausgabe von Wollen Sie tatsächlich die Datenbank löschen oder ähnlichen Warnhinweisen. Mit FALSE werden die Warnungen nicht mehr angezeigt.

$cfg['LoginCookieRecall'] = TRUE;

Diese Option legt fest, ob sich das System an den vorhergehenden Login-Versuch bei der Cookie-Authentifizierung erinnert oder nicht. TRUE aktiviert diese Funktion.

$cfg['UseDbSearch'] = TRUE;

Mit diesem Schalter legen Sie fest, ob die Datenbanksuche verfügbar ist oder nicht. Die Standardeinstellung lautet TRUE, womit die Suche möglich ist. FALSE deaktiviert die Suche.

$cfg['IgnoreMultiSubmitErrors'] = FALSE;

Diese Option bestimmt, ob phpMyAdmin Multi-Query-Statements ausführt, wenn eine Abfrage fehlschlägt. Standardmäßig wird die weitere Suche abgebrochen.

$cfg['VerboseMultiSubmit'] = TRUE;

Mit dieser Konfiguration legen Sie fest, ob der Datenbankmanager die Ergebnisse jeder Suche einer Multi-Query-Suche in den SQL-Output als Inline-Kommentar einfügt. Der Standardwert ist TRUE.

$cfg['AllowArbitraryServer'] = FALSE;

Ist dieser Schalter aktiviert, können Sie sich per Cookie-Authentifizierung in das System einloggen. Es empfiehlt sich, diese Option sorgsam einzusetzen, da man sich auch Zugriff zum MySQL-Server verschaffen kann, der sich hinter einer Firewall befindet.

8.4 Einrichtung des linken Frames

$cfg['LeftFrameLight'] = TRUE;

Hiermit legen Sie fest, ob Sie lediglich das Auswahlmenü und die abgespeckte Variante der Tabellenansicht im linken Frame anzeigen wollen oder nicht.

$cfg['LeftFrameTableSeparator'] = ‘___’;

Hiermit legen Sie die Form der Trennung zwischen den Tabellen fest. Der Standard ist __.

$cfg['LeftFrameTableLevel'] = ‘1’;

Mit diesem Schalter bestimmen Sie, wie viele Ebenen einer Tabelle angezeigt werden, wenn Sie die Tabelle mit obigem Separator voneinander trennen. Die Vorgabe ist 1.

$cfg['ShowTooltip'] = TRUE;

Mit dieser Konfiguration legen Sie fest, ob die Tabellenkommentare angezeigt werden, wenn Sie den Mauszeiger über die jeweilige Bezeichnung führen. Mit FALSE kann die standardmäßig aktivierte Funktion deaktiviert werden.

$cfg['ShowTooltipAliasDB'] = FALSE;

Mit dieser Option werden die Informationen deaktiviert.

$cfg['ShowTooltipAliasTB'] = FALSE;

Entspricht $cfg['ShowTooltipAliasDB']. Einziger Unterschied: Hier geht es um die ergänzenden Tabelleninformationen.

$cfg['LeftDisplayLogo'] = TRUE;

Diese Option sorgt dafür, dass das phpMyAdmin-Logo oben im linken Frame angezeigt wird. Standardmäßig ist das der Fall.

$cfg['LeftDisplayServers'] = FALSE;

Diese Option legt fest, ob die Server-Wahl ebenfalls oben im linken Frame angezeigt wird. Die Ansicht ist mit FALSE standardmäßig deaktiviert.

$cfg['DisplayServersList'] = FALSE;

Legt fest, ob die Serverwahl als Link oder als Auswahlmenü erfolgt. Standardmäßig ist das Drop-down-Menü mit FALSE aktiv.

8.5 Einstellungen für den rechten Frame beim Start

$cfg['ShowStats'] = TRUE;

Diese Option erlaubt die Ansicht von Detailinformationen in der Datenbankstatistik.

$cfg['ShowMysqlInfo'] = FALSE;

Legt fest, ob die MySQL-Runtime-Informationen in der Statistik angezeigt werden.

$cfg['ShowMysqlVars'] = FALSE;

Bestimmt, ob die Systemvariablen angezeigt werden.

$cfg['ShowPhpInfo'] = FALSE;

Bestimmt, ob die PHP-Informationen angezeigt werden oder nicht. Um die Verwendung von phpinfo() in Skripts zu unterbinden, muss folgende Zeile in die PHP-Konfigurationsdatei php.ini eingefügt werden: disable_functions = phpinfo().

$cfg['ShowChgPassword'] = FALSE;

Zeigt an, dass der Link Passwort ändern angezeigt wird.

$cfg['SuggestDBName'] = TRUE;

Diese Option legt fest, ob das System einen Datenbanknamen vorschlägt, wenn Sie eine neue Datenbank erzeugen. Verwenden Sie den Wert FALSE, wird kein Vorschlag gemacht.

8.6 Einstellungen für den Ansichtsmodus

$cfg['ShowBlob'] = FALSE;

Hiermit legt man fest, ob BLOB-Felder angezeigt werden, wenn man eine Tabelle in der Ansicht betrachtet. Die Ansicht ist mit FALSE standardmäßig deaktiviert.

$cfg['NavigationBarIconic'] = TRUE;

Legt fest, ob die Navigationsschaltflächen Text verwenden.

$cfg['ShowAll'] = FALSE;

Setzt man diese Option auf TRUE, so steht dem Benutzer die Option Alle anzeigen zur Verfügung.

$cfg['MaxRows'] = 30;

Mit diesem Wert legt man die maximale Anzahl von Reihen fest, die pro Suchergebnisseite ausgegeben werden können. Enthält das Ergebnis mehr als die vorgegebene Zahl Ergebnisse, kann man mit Weiter zur nächsten Seite wechseln.

$cfg['Order'] string [DESC|ASC|SMART]

Mit dieser Option legt man fest, ob die Felder aufsteigend (ASC), absteigend (DESC) oder in der so genannten Smart-Reihenfolge (SMART) angezeigt werden.

8.7 Einstellungen für den Editiermodus

$cfg['ProtectBinary'] = ‘blob’;

Mit dieser Option können Sie BLOB- oder BINARY-Felder vor dem Editieren schützen. Es sind drei Werte zulässig:

- FALSE: Erlaubt das Editieren aller Tabellen.

- blob: Erlaubt das Editieren aller Tabellen, außer BLOBs.

- all: Verhindert das Editieren von BINARY- oder BLOB-Feldern.

$cfg['ShowFunctionFields'] = TRUE;

Hier legen Sie fest, ob das MySQL-Funktionenfeld im Editiermodus angezeigt werden soll.

$cfg['CharEditing'] = ‘input’;

Bestimmt, welcher Editor für die Felder CHAR und VARCHAR verwendet wird. Es sind folgende Werte möglich:

- input: Damit können Sie die Textgröße beschränken. Dies ist die Vorgabe.

- textarea: Diese Option lässt auch neue Zeilen in Feldern zu.

8.8 Einstellungen für den Export

$cfg['ZipDump'] = TRUE;

$cfg['GZipDump'] = TRUE;

$cfg['BZipDump'] = TRUE;

Mit diesen Einstellungen legen Sie fest, welche Komprimierverfahren für den Datenexport unterstützt werden. Dies sind Zip, GZip und BZip2.

$cfg['CompressOnFly'] = TRUE;

Hier legen Sie fest, ob die On-the-fly-Kompression bei Exportieren zulässig ist.

$cfg['LightTabs'] =FALSE;

Setzen Sie diesen Wert auf TRUE statt auf den Standardwert FALSE, so verwendet phpMyAdmin weniger farbintensive Tabs im Arbeitsbereich.

$cfg['PropertiesIconic'] = TRUE;

Ist diese Option auf TRUE gesetzt, so wie es standardmäßig der Fall ist, werden Icons anstelle von Text für die Datenbank- und Tabelleneigenschaftenverweise verwendet, beispielsweise Auswählen, Einfügen etc. Wollen Sie beides, also Text und Icons, so setzen Sie die Option auf both. Verwenden Sie den Wert FALSE, so wird lediglich Text angezeigt.

$cfg['PropertiesNumColumns'] = 1;

Hier legen Sie fest, in wie vielen Tabellenspalten die Datenbankeigenschaften angezeigt werden. Der Standard ist eine Spalte.

$cfg['DefaultTabServer'] = ‘main.php’;

Diese Option definiert das Register, das standardmäßig in der Serveransicht geöffnet wird. Mögliche Werte sind:

- main.php – empfohlen für eine Multiuser-Umgebung

- server_databases.php

- server_status.php

- server_variables.php

- server_privileges.php

- server_processlist.php

$cfg['DefaultTabDatabase'] = ‘db_details_structure.php’;

Mit dieser Einstellung bestimmen Sie das Register, das standardmäßig in der Datenbankansicht angezeigt wird. Mögliche Werte sind:

- db_details_structure.php

- db_details.php

- db_search.php

$cfg['DefaultTabTable'] = ‘tbl_properties_structure.php’;

Hier bestimmen Sie das Register, das standardmäßig in der Tabellenansicht geöffnet wird. Mögliche Werte sind:

- tbl_properties_structure.php

- tbl_properties.php

- tbl_select.php

- tbl_change.php

8.9 MySQL-Einstellungen

$cfg['MySQLManualBase'] = ‘http://dev.mysql.com/doc/mysql/en’;

Hier legen Sie die URL der MySQL-Dokumentation fest, die geöffnet wird, wenn Sie in der Navigationsleiste auf das Icon MySQL-Dokumentation klicken. Für deutschsprachige Anwender ist es sinnvoll, die URL anzupassen, damit die deutsche statt der englischen Dokumentation geöffnet wird. Hierfür verwenden Sie am besten den Wert http://dev.mysql.com/doc/mysql/de/.

$cfg['MySQLManualType'] = ‘searchable’;

Hier legen Sie den Typ der MySQL-Dokumentation fest, den man durch die URL ansteuert. Es stehen folgende Typen zur Auswahl:

- old: Die alte Variante, wie sie in phpMyAdmin 2.3.0 (und früher) zur Verwendung kam.

- searchable: Mit dieser Variante öffnet man die MySQL-Dokumentation, die auch eine Suchfunktion mit Benutzerkommentaren bietet.

- chapters: Bei dieser Variante wird jedes Kapitel in einer HTML-Seite angezeigt. Die Dokumente sind allerdings recht groß.

- big: Diese Variante öffnet die gesamte Dokumentation in einem HTML-Dokument. Das Laden dauert entsprechend lange.

- none: Diese Option zeigt keinen Link zur Dokumentation.

Bei der Wahl der deutschsprachigen Dokumentation ist jedoch zu beachten, dass diese nicht auf dem neuesten Stand ist. Für MySQL-Einsteiger ist sie allerdings vollkommen ausreichend.

8.10 Einstellungen für die Sprache und Zeichensätze

$cfg['DefaultLang'] = ‘en-iso-8859’;

Diese Option bestimmt die Standardsprachvariante, mit der phpMyAdmin zum ersten Mal startet, bzw. wenn es keine Browser-definierte Vorgabe oder andere Benutzervorgaben gibt. Weitere Details für gültige Werte finden Sie im Skript select_lang.inc.php.

$cfg['Lang'] = ‘en-iso-8859’;

Diese Option erzwingt die angegebene Sprachvariante.

$cfg['DefaultCharset'] = iso-8859’;

Hier legen Sie den Standardzeichensatz fest, der für das Recoding von MySQL-Abfragen verwendet wird. Dazu muss die Recoding-Option $cfg['AllowAnywhereRecoding'] aktiviert sein.

$cfg['AllowAnywhereRecoding'] = FALSE;

Diese Option erlaubt das Recoding von MySQL-Abfragen.

$cfg['RecodingEngine'] = ‘auto’;

Hier legen Sie fest, welche Funktionen für die Zeichensatzkonvertierung verwendet werden. Mögliche Werte sind:

- auto: Dieser Wert verwendet automatisch die verfügbaren Funktionen. Dabei wird zuerst iconv und dann recode getestet.

- iconv: Verwendet iconv oder die libiconv-Funktionen.

- recode: Verwendet die recode_string-Funktion.

Die Standardeinstellung ist auto.

$cfg['IconvExtraParams'] = ‘  ‘;

Hier können Sie verschiedene Parameter für die Verwendung von iconv definieren. Details finden Sie in der iconv-Dokumentation (www.gnu.org/software/libiconv/).

$cfg['AvailableCharsets'] array

Hier legen Sie die verfügbaren Zeichensätze fest. Es ist möglich, die Voreinstellungen mit eigenen Sätzen zu erweitern, solange diese von recode/iconv unterstützt werden. Die Anzeige erfolgt in der hier abgebildeten Reihenfolge. Das Array sieht standardmäßig wie folgt aus:

array(

'iso-8859-1',

'iso-8859-2',

'iso-8859-3',

'iso-8859-4',

'iso-8859-5',

'iso-8859-6',

'iso-8859-7',

'iso-8859-8',

'iso-8859-9',

'iso-8859-10',

'iso-8859-11',

'iso-8859-12',

'iso-8859-13',

'iso-8859-14',

'iso-8859-15',

'windows-1250',

'windows-1251',

'windows-1252',

'windows-1256',

'windows-1257',

'koi8-r',

'big5',

'gb2312',

'utf-8',

'utf-7',

'x-user-defined',

'euc-jp',

'ks_c_5601-1987',

'tis-620',

'SHIFT_JIS'

);

$cfg['GD2Available'] = auto;

Diese Option legt fest, ob GD größer/gleich 2 verfügbar ist. Ist das der Fall, kann es für MIME-Transformationen verwendet werden. Mögliche Werte sind auto, yes und no. Die Vorgabe lautet auto. Weitere Informationen finden Sie unter http://freshmeat.net/projects/gd/.

8.11 Einstellungen für das Layout und Design

Verschiedene dieser Einstellungen werden über themes/theme_name/layout.inc.php definiert.

$cfg['LeftWidth'] = TRUE;

Diese Option aktiviert die Anpassungsmöglichkeiten der Breite des linken Frames. Die eigentliche Breite in Pixel wird über $cfg['LeftWidth'] = 200; in der themes/theme_name/layout.inc.php definiert.

$cfg['LeftBgColor'] = ‘#D0DCE0‘;

$cfg['RightBgColor'] = ‘#F5F5F5‘;

Hiermit bestimmen Sie die Hintergrundfarbe der Schnittstelle für den linken und den rechten Frame. Details siehe auch themes/theme_name/layout.inc.php.

$cfg['RightBgImage'] = ‘  ‘;

Hier legen Sie die URL für das Hintergrundbild fest, das Sie im rechten Frame verwenden. Es muss sich um eine absolute URL handeln, also beispielsweise http://www.server.de/bilder/hintergrund_fuer_myphpadmin.jpg. Details siehe themes/theme_name/layout.inc.php. Standardmäßig wird kein Hintergrundbild verwendet.

$cfg['LeftPointerColor'] = ‘#CCFFCC‘;

Hier legen Sie die Farbe für den Zeiger im linken Frame fest. Details siehe auch themes/theme_name/layout.inc.php.

$cfg['LeftPointerEnable'] = TRUE;

Der Wert TRUE aktiviert den Links-Pointer, wenn die Option LeftFrameLight auf FALSE gesetzt ist.

$cfg['Border'] = 0;

Hier bestimmen Sie die Dicke des Tabellenrahmens. Diese Einstellung wird über themes/theme_name/layout.inc.php gesteuert.

$cfg['ThBgcolor'] = ‘#D3DCE5‘;

Hier legen Sie die Einstellung für den Kopf der Tabellen fest. Diese Einstellung wird über themes/theme_name/layout.inc.php gesteuert.

$cfg['BgcolorOne'] = ‘#E5E5E5‘;

Diese Einstellung definiert die Farbe #1 für Tabellenreihen. Diese Einstellung wird über themes/theme_name/layout.inc.php gesteuert.

$cfg[‘BgcolorTwo’] = ‘#D5D5D5‘;

Hiermit bestimmen Sie die Farbe #2 für Tabellenreihen, wenn Sie den Mauszeiger über die Reihe führen. Diese Einstellung wird über themes/theme_name/layout.inc.php gesteuert.

$cfg[‚BrowsePointerColor’] = ‘#CCFFCC‘;

$cfg[‚BrowseMarkerColor’] =  ‘#FFCC99‘;

Mit diesem Werten legen Sie die Farben für den Pointer und den Marker im Ansichtsmodus fest. Diese Einstellung wird über themes/theme_name/layout.inc.php gesteuert.

In der Datei layout.inc.php werden übrigens auch die Farbeinstellungen für den SQL-Parser definiert. Die Syntax lautet $cfg[‚SQP’][‚fmtColor’] = array. Und konkret:

$cfg[‚SQP’][‚fmtColor’]     = array

(        // Farbeinstellungen für die Syntax-Ausgabe

‘comment’            => ‘#808000’,

‘comment_mysql’      => ‘’,

‘comment_ansi’       => ‘’,

‘comment_c’          => ‘’,

‚digit’              => ‚’,

‚digit_hex’          => ‚teal’,

‚digit_integer’      => ‚teal’,

‚digit_float’        => ‚aqua’,

‘punct’              => ‘fuchsia’,

‘alpha’              => ‘’,

‘alpha_columnType’   => ‘#FF9900’,

‘alpha_columnAttrib’ => ‘#0000FF’,

‘alpha_reservedWord’ => ‘#990099’,

‘alpha_functionName’ => ‘#FF0000’,

‘alpha_identifier’   => ‘black’,

‘alpha_charset’      => ‘#6495ed’,

‘alpha_variable’     => ‘#800000’,

‘quote’              => ‘#008000’,

‚quote_double’       => ‚’,

‚quote_single’       => ‚’,

‚quote_backtick’     => ‚’

);

?>

$cfg[‘BrowsePointerEnable’] = TRUE;

Bestimmt, ob Sie Pointer für die Ansicht aktivieren.

$cfg[‚BrowseMarkerEnable’] = TRUE;

Hier legen Sie fest, ob der Marker für die Ansicht aktiviert ist .

$cfg[‚TextareaCols’] = 30;

$cfg[‚TextareaRows’] = 7;

$cfg[‚CharTextareaCols’] = 50;

$cfg[‘CharTextareaRows’] = 3;

Hier legen Sie die Anzahl der Zeilen und Spalten der Textfelder fest. Die Char-Werte werden für das CHAR- und VARCHAR-Editing verwendet (vorausgesetzt $cfg[‚CharEditing’] ist aktiviert).

$cfg[‘LongtextDoubleTextarea’] = TRUE;

Hier bestimmen Sie, ob LONGTEXT-Felder die doppelte Größe besitzen sollen.

$cfg[‘TextareaAutoSelect’] = TRUE;

Legt fest, ob das gesamte Textfeld der Query-Box ausgewählt wird, wenn Sie es anklicken.

$cfg[‚CtrlArrowsMoving’] = TRUE;

Diese Option erlaubt das Bewegen zwischen den Eingabefeldern mittels Ctrl+Oben bzw. Crtl+Unten.

$cfg[‚LimitChars’] = 50;

Legt die maximale Anzahl von Zeichen fest, die in einem nicht-numerischen Feld im Ansichtsmodus angezeigt werden.

$cfg[‘ModifyDeleteAtLeft’] = TRUE;

$cfg[‘ModifyDeleteAtRight’] = FALSE

Legt den Platz fest, wo Links für das Bearbeiten und Löschen in der Tabelle aufgeführt werden.

$cfg[‚DefaultDisplay’] = ‘horizontal’;

$cfg[‚HeaderFlipType’] = ‘css’;

phpMyAdmin unterstützt drei Ansichtsmodi horizontal, horizontal gedreht und vertikal. Hier legen Sie den Standardansichtsmodus fest. Der horizontale Modus zeigt jede Zeile in einer Zeile, der zweite Modus dreht das Ganze um 90 Grad und der vertikale Modus schließlich sortiert die Reihen vertikal nebeneinander. Für die Option HeaderFlipType können die Werte css und fake verwendet werden. Verwenden Sie css, so wird die Rotation des Headers vorgenommen, fake ist für die Transformation. css ist die optisch schönere Variante.

$cfg[‚DefaultPropDisplay’] = ‚horizontal’;

Beim Erzeugen einer neuen Zeile in einer Tabelle werden normalerweise alle Felder in einer Zeile aufgeführt, und zwar standardmäßig horizontal. Ändern Sie die Einstellung zu vertical, so werden die Felder einzeln vertikal aufgereiht. Die horizontale Anordnung erweist sich oft als platzsparend und kann vermeiden, dass man oft durch die Seiten scrollen muss.

$cfg[‘ShowBrowseComments’] = TRUE;

$cfg[‘ShowPropertyComments’] = TRUE;

Mit dieser Einstellung legen Sie fest, ob Zeilenkommentare im Ansichts- oder Eigenschaftenmodus angezeigt werden. Im Ansichtsmodus werden die Kommentare im Header anzeigt. Im Eigenschaftenmodus werden die Kommentare per CSS-formatierte, gestrichelte Linie unter dem Feldnamen aufgeführt.

$cfg[‚UploadDir’] = ‘./verzeichnis/auf_server_fuer_upload/‘;

Hier legen Sie das Verzeichnis fest, in das die SQL-Dateien übertragen werden. Die Upload-Funktion ist über die SQL-Ansicht verfügbar, nachdem das zugehörige Verzeichnis hier eingetragen wurde. Wichtig: Die Dateien müssen die Dateierweiterung sql, sql.bz2 oder sql.gz besitzen.

$cfg[‘docSQLDir’] string;

Hier geben Sie das Verzeichnis an, in das die docSQL-Dateien abgelegt werden, die für den Import in phpMyAdmin verwendet werden. Dazu muss die PHP-Umgebung im sicheren Modus ausgeführt werden. Außerdem muss das Verzeichnis dem gleichen Benutzer gehören, der auch der Besitzer der phpMyAdmin-Skripts ist.

$cfg[‘SaveDir’] = ‘./verzeichnis‘;

Hier legen Sie das Verzeichnis fest, in dem die Exportdateien abgelegt werden. Wichtig ist, dass der Webserver Schreibrechte hat. Wird die PHP-Umgebung im sicheren Modus eingesetzt, so muss der Besitzer des Verzeichnisses auch die phpMyAdmin-Skripts besitzen.

$cfg['TempDir'] = ‘  ‘;

Mit dieser Einstellung bestimmen Sie das Verzeichnis für die temporären Dateien. Es wird für den Export nach MS Excel benötigt.

$cfg['Export'] array;

In diesem Array legen Sie die Standardparameter für den Export in die verschiedenen Exportformate fest.

$cfg['RepeatCells'] = 100;

Hier legen Sie fest, nach wie vielen Zellen der Header wiederholt wird. Die Vorgabe lautet 100. Mit Null wird die Ansicht deaktiviert.

8.12 Einstellungen für das SQL-Abfragefenster

$cfg['SQLQuery'] = TRUE;

Ist die Option $cfg['QueryFrame'] auf TRUE gesetzt, wird ein Link oder ein Icon im linken Frame angezeigt, über das man das Abfragefenster öffnet und dann seinen SQL-Code eingibt.

$cfg['SQLQuery'] = TRUE;

Ist die Option $cfg['QueryFrameJS'] auf TRUE gesetzt und klicken Sie auf den zugehörigen Link im linken Frame, so wird ein neues Browser-Fenster geöffnet, dessen Größe Sie mit den Optionen $cfg['QueryWindowWidth'] und $cfg['QueryWindowWidth'] bestimmen.

$cfg['QueryWindowWidth'] = 550;

$cfg['QueryWindowHeight'] = 310;

Mit diesen beiden Werten legen Sie die Breite bzw. Höhe des Fensters fest, das sich beim Klick auf den Abfrageeditorlink öffnet. Standardmäßig ist das Fenster 550 Pixel breit und 310 Pixel hoch.

$cfg['QueryHistoryDB'] boolean

Setzen Sie die Option $cfg['QueryHistoryDB'] auf TRUE, so werden alle Tabellenabfragen protokolliert und in dem Abfrageprotokoll aufgezeichnet. Ist die Option auf FALSE gesetzt, werden alle Abfragen an das Formular angehängt, allerdings nur solange, wie das Fenster geöffnet ist.

Verwenden Sie das JavaScript-basierte Abfragefenster, so wird dieses immer dann aktualisiert, wenn Sie auf den Verweis Neue Tabelle oder Neue Datenbank klicken. Die Aktualisierung kann durch das Aktivieren der Option Abfrage vor Änderungen außerhalb des Fensters schützen unterdrückt werden.

Haben Sie zusätzlich die Option $cfg['QueryHistoryDB'] auf TRUE gesetzt, so kann die Anzahl der Einträge über die Option $cfg['QueryHistoryMax'] festgelegt werden.

$cfg['QueryWindowDefTab'] = ‘sql‘;

Das Abfragefenster verwendet Register für die Gruppierung der Funktionen. Mit der Option $cfg['QueryWindowDefTab'] legen Sie fest, welches Register standardmäßig beim Öffnen des Fensters angezeigt wird. Standardmäßig wird das SQL-Abfrageformular durch den Wert sql aktiviert. Alternativ können die Werte files, history oder full verwendet werden.

$cfg['QueryHistoryMax'] = 25;

Mit dieser Option legen Sie die maximale Anzahl von Einträgen im SQL-Verlaufsprotokoll fest.

8.13 Weitere Design-Einstellungen

$cfg['BrowseMIME'] = TRUE;

Aktiviert die MIME-Transformation.

$cfg['MaxExactCount'] = 20000;

Hier bestimmen Sie die maximale Größe einer phpMyAdmin-Tabelle.

$cfg['NaturalOrder'] = TRUE;

Über diese Option aktivieren Sie die natürliche Sortierreihenfolge von Datenbanken und Tabellen. Natürlich ist gleichbedeutend mit alphabetisch.

$cfg['ShowHttpHostTitle'] = TRUE;

Ist diese Option aktiv, wird der HTTP-Hostname in der Titelzeile des Fensters aufgeführt.

$cfg['SetHttpHostTitle'] = ‘  ‘;

Setzen Sie die Option $cfg['ShowHttpHostTitle'] auf TRUE, so wird der tatsächliche HTTP-Hostname wie beispielweise localhost verwendet. Wenn Sie eine andere Bezeichnung verwenden wollen, geben Sie diese hier an.

$cfg['ErrorIconic'] = TRUE;

Standardmäßig ist die Verwendung von Icons für Warnungen, Fehlermeldungen und andere Informationen aktiv.

$cfg['MainPageIconic'] = TRUE;

Aktiviert die Verwendung von Icons auf der Hauptseite in Listen sowie in Menüs und Menüregistern.

$cfg['ReplaceHelpImg'] = TRUE;

Zeigt den Hilfe-Button anstelle des Dokumentationshinweises für weiterführende Dokumente. Diese Dokumente werden durch einen Klick auf den Hilfe-Button geöffnet.

$cfg['ThemePath'] = ‘./themes‘;

Ist der Themen-Manager aktiviert, geben Sie hier den Pfad zum Unterverzeichnis an, in dem die Themes hinterlegt sind.

$cfg['ThemeManager'] = TRUE;

Diese Standardeinstellung aktiviert das Auswahlmenü für Themes auf der phpMyAdmin-Startseite.

$cfg['ThemeDefault'] = ‘original‘;

Hier legen Sie das Standard-Design für die Schnittstelle fest, das im zuvor definierten Theme-Verzeichnis hinterlegt ist.

8.14 Standardeinstellung für Abfragen

$cfg['DefaultQueryTable'] = ‘SELECT * FROM %t WHERE 1‘;

$cfg['DefaultQueryDatabase'] = ‘  ‘;

Hier legen Sie die Standardabfragekommandos fest, die in der Abfragebox zu finden sind. Dabei steht %d für den Datenbanknamen der aktuell geöffneten Datenbank, %t für den Tabellennamen und %f für eine Komma-separierte Liste von Feldnamen. Wichtig ist dabei, dass %t und %f nur für die Option $cfg['DefaultQueryTable'] anwendbar sind.

$cfg['SQP']['fmtType'] = ‘html‘;

In der Standardeinstellung wird das HTML-Format für die Formatierung der Abfragen verwendet. Die Alternative ist none.

$cfg['SQP']['fmtColor'] zeichentupel-array

Mit diesem Array bestimmen Sie die Farben für jeden Elementtyp. Dabei wird folgendes Tupel-Format verwendet:

class => [HTML farbcode | leere zeichenfolge]

$cfg['SQLValidator']['use'] = FALSE;

Hier bestimmen Sie, ob der Mimer SQL Validator Service verwendet wird.

$cfg['SQLValidator']['username'] = ‘  ‘;

$cfg['SQLValidator']['password'] = ‘  ‘;

Hier hinterlegen Sie den Benutzernamen und das Passwort für den Validier-Service.

8.15 Spezialeinstellungen für Entwickler

Der Einsatz dieser Funktionen setzt die Installation der DBG-Erweiterung (http://dd.cron.ru/dbg/) voraus.

$cfg['DBG']['enable'] = FALSE;

Aktiviert die DBG-Erweiterung für das Debugging. Weitere Details hierzu findet man auf den Entwickler-Seiten der phpMyAdmin-Homepage.

$cfg['DBG']['profile']['enable'] = FALSE;

Mit dieser Option kann die Profil-Unterstützung von phpMyAdmin aktiviert werden.

$cfg['DBG']['profile']['threshold'] = 0.5;

Hier definieren Sie den Grenzwert für Profilangaben.

8.16 MySQL-spezifische Einstellungen

$cfg['ColumnTypes'] = array

Mit dieser Konfiguration bestimmen Sie die möglichen Spaltentypen. In der Regel müssen die Einstellungen nicht bearbeitet werden. Das Array sieht standardmäßig wie folgt aus:

array(

'VARCHAR',

'TINYINT',

'TEXT',

'DATE',

'SMALLINT',

'MEDIUMINT',

'INT',

'BIGINT',

'FLOAT',

'DOUBLE',

'DECIMAL',

'DATETIME',

'TIMESTAMP',

'TIME',

'YEAR',

'CHAR',

'TINYBLOB',

'TINYTEXT',

'BLOB',

'MEDIUMBLOB',

'MEDIUMTEXT',

'LONGBLOB',

'LONGTEXT',

'ENUM',

'SET'

);

$cfg['AttributeTypes'] array

Hier sind die möglichen Feldtypen hinterlegt. Auch diese Einstellungen müssen in der Regel nicht editiert werden. Das Array sieht standardmäßig wie folgt aus:

= array(

'',

'BINARY',

'UNSIGNED',

'UNSIGNED ZEROFILL'

);

$cfg['Functions'] array

Hier sind alle Funktionen gelistet, die die Umgebung unterstützt. Das Array sieht standardmäßig wie folgt aus:

= array(

'ASCII',

'CHAR',

'SOUNDEX',

'LCASE',

'UCASE',

'NOW',

'PASSWORD',

'MD5',

'SHA1',

'ENCRYPT',

'RAND',

'LAST_INSERT_ID',

'COUNT',

'AVG',

'SUM',

'CURDATE',

'CURTIME',

'FROM_DAYS',

'FROM_UNIXTIME',

'PERIOD_ADD',

'PERIOD_DIFF',

'TO_DAYS',

'UNIX_TIMESTAMP',

'USER',

'WEEKDAY',

'CONCAT'

);

$cfg['RestrictColumnTypes'] array

Das Mapping von Spaltentypen und den zugehörigen Funktionen. Das Array sieht standardmäßig wie folgt aus:

= array(

'VARCHAR'      => 'FUNC_CHAR',

'TINYINT'      => 'FUNC_NUMBER',

'TEXT'         => 'FUNC_CHAR',

'DATE'         => 'FUNC_DATE',

'SMALLINT'     => 'FUNC_NUMBER',

'MEDIUMINT'    => 'FUNC_NUMBER',

'INT'          => 'FUNC_NUMBER',

'BIGINT'       => 'FUNC_NUMBER',

'FLOAT'        => 'FUNC_NUMBER',

'DOUBLE'       => 'FUNC_NUMBER',

'DECIMAL'      => 'FUNC_NUMBER',

'DATETIME'     => 'FUNC_DATE',

'TIMESTAMP'    => 'FUNC_DATE',

'TIME'         => 'FUNC_DATE',

'YEAR'         => 'FUNC_DATE',

'CHAR'         => 'FUNC_CHAR',

'TINYBLOB'     => 'FUNC_CHAR',

'TINYTEXT'     => 'FUNC_CHAR',

'BLOB'         => 'FUNC_CHAR',

'MEDIUMBLOB'   => 'FUNC_CHAR',

'MEDIUMTEXT'   => 'FUNC_CHAR',

'LONGBLOB'     => 'FUNC_CHAR',

'LONGTEXT'     => 'FUNC_CHAR',

'ENUM'         => '',

'SET'          => ''

);

$cfg['RestrictFunctions'] array

Hier werden die Funktionen aufgeführt sowie die Spaltenmetatypen entsprechend der Definition in der $cfg['RestrictColumnTypes']. Das Array sieht standardmäßig wie folgt aus:

= array(

'FUNC_CHAR'   => array(

'ASCII',

'CHAR',

'SOUNDEX',

'LCASE',

'UCASE',

'PASSWORD',

'MD5',

'SHA1',

'ENCRYPT',

'LAST_INSERT_ID',

'USER',

'CONCAT'

),

'FUNC_DATE'   => array(

'NOW',

'CURDATE',

'CURTIME',

'FROM_DAYS',

'FROM_UNIXTIME',

'PERIOD_ADD',

'PERIOD_DIFF',

'TO_DAYS',

'UNIX_TIMESTAMP',

'WEEKDAY'

),

'FUNC_NUMBER' => array(

'ASCII',

'CHAR',

'MD5',

'SHA1',

'ENCRYPT',

'RAND',

'LAST_INSERT_ID',

'COUNT',

'AVG',

'SUM'

)

);

$cfg['DefaultFunctions'] array

Die Standardfunktionen. Das Array sieht standardmäßig wie folgt aus:

= array(

'FUNC_CHAR'         => '',

'FUNC_DATE'         => '',

'FUNC_NUMBER'       => '',

'first_timestamp'   => 'NOW'

);

$cfg['NumOperators'] array

Hier legt man die Operatoren für die Suche in numerischen Feldern und nach Datumsangaben fest:

= array(

'=',

'>',

'>=',

'<',

'<=',

'!=',

'LIKE',

'NOT LIKE'

);

$cfg['TextOperators'] array

Die Operatoren, die für die Suche in Zeichenfeldern verfügbar sind. Das Array sieht standardmäßig wie folgt aus:

= array(

'LIKE',

'LIKE %...%',

'NOT LIKE',

'=',

'!=',

'REGEXP',

'NOT REGEXP'

);

$cfg['EnumOperators'] array

Die verfügbaren ENUM-Operatoren. Das Array sieht standardmäßig wie folgt aus:

= array(

'=',

'!='

);

$cfg['NullOperators'] array

Zusätzliche Operatoren für die Suche, wenn der Wert der Felder auch null sein kann. Das Array sieht standardmäßig wie folgt aus:

= array(

'IS NULL',

'IS NOT NULL'

);

Anhang A - Anpassung der Basiskonfiguration

Nachdem Sie phpMyAdmin in Betrieb genommen haben, wollen Sie sich vielleicht an die Anpassung der Umgebung machen. Am besten arbeiten Sie dazu die Konfigurationsdatei Schritt für Schritt von oben nach unten durch und nehmen gegebenenfalls Änderungen an den Einstellungen vor. Die erste relevante Einstellung ist PmaAbsoluteURI. Die zugehörige Zeile sieht standardmäßig wie folgt aus:

$cfg['PmaAbsoluteUri'] = '';

Meist kann diese Einstellung beibehalten werden. In diesem Fall versucht phpMyAdmin den korrekten Wert automatisch zu erkennen. Wollen Sie eine bestimmte URL für die Schnittstelle angeben, so kann dies hier explizit hinterlegt werden. Ein Beispiel:

$cfg['PmaAbsoluteUri'] = 'http://www.server.de/phpmyadmin/';

Wichtig ist dabei, dass die vollständige URL angegeben wird. Um zu verhindern, dass eine Fehlermeldung beim Zugriff ausgegeben wird, sollten Sie sicherstellen, dass in der folgenden Konfiguration der Wert TRUE gesetzt ist:

$cfg['PmaAbsoluteUri_DisableWarning'] = TRUE;

In der Konfigurationsdatei folgen die Server-spezifischen Einstellungen. Für jeden Server wird ein eigener Abschnitt erzeugt, der mit diesen beiden Zeilen beginnt:

$i++;

$cfg['Servers'][$i]['host'] =

Innerhalb dieses Containers stehen eine Vielzahl von Konfigurationsmöglichkeiten zur Verfügung. Für jeden Server sind das folgende Einstellungen:

$i++

$cfg['Servers'][$i]['host']         = 'localhost'

$cfg['Servers'][$i]['port']         = ''

$cfg['Servers'][$i]['socket']       = ''

$cfg['Servers'][$i]['connect_type'] = 'tcp'

$cfg['Servers'][$i]['compress']     = FALSE

$cfg['Servers'][$i]['controluser']  = 'pma'

$cfg['Servers'][$i]['controlpass']  = ''

$cfg['Servers'][$i]['auth_type']    = 'config'

$cfg['Servers'][$i]['user']         = 'root'

$cfg['Servers'][$i]['password']     = ''

$cfg['Servers'][$i]['only_db']      = ''

$cfg['Servers'][$i]['verbose']      = ''

Wie obiger Vorgabe leicht zu entnehmen ist, definiert die zweite Zeile $cfg['Servers'][$i]['host'] = 'localhost'; den Hostnamen bzw. die IP-Adresse des MySQL-Servers. Hier finden Sie die Vorgabe localhost, die beispielsweise in mysql.server.de angepasst werden kann.

Wichtig für die Verbindungsaufnahme sind auch die Port- und Sockets-Einstellungen der Zeilen $cfg['Servers'][$i] ['port'] = ' ';  und $cfg['Servers'][$i]['socket']  = ''; Diese müssen immer dann angepasst werden, wenn Sie vom Standard abweichende Einstellungen verwenden.

Von zentraler Bedeutung für die MySQL-Server-Sicherheit sind die beiden Einstellungen $cfg['Servers'][$i]['user'] = 'root'; und $cfg['Servers'][$i]['password'] = ''; Hier sind, wie ebenfalls direkt zu erkennen ist, Benutzername und Passwort hinterlegt. Da das Passwort bei einer Erstinstallation leer ist, sollte es durch eine sichere Zeichenfolge ersetzt werden.

Den Abschluss der Server-spezifischen Einstellungen bildet die Server-Bezeichung der Konfigurationszeile $cfg['Servers'][$i]['verbose'] = ''. Wollen Sie statt der leeren Bezeichnung die Datenbank durch eine Bezeichnung wie Firmenname oder Vergleichbares festlegen, so hinterlegen Sie die Bezeichnung hier. Eine solche Bezeichnung erfüllt einen weiteren Zweck: Sie versteckt die tatsächliche MySQL-Server-Bezeichnung vor den Anwendern und macht sie somit weniger leicht identifizierbar.

Multi-Server-Umgebung

Es ist oben bereits angeklungen, dass phpMyAdmin auch für die Steuerung einer Multi-Datenbankserverumgebung taugt. In der Standardkonfigurationsdatei sind drei Server-Sektionen vorgesehen. Das bedeutet, dass phpMyAdmin für die Verwaltung von drei MySQL-Datenbankservern gerüstet ist. Die zugehörigen Einstellungen müssen natürlich noch an die Datenbankeinstellungen angepasst werden.

Wollen Sie weitere Datenbankserver mit phpMyAdmin administrieren, so müssen die Einstellungen entsprechend angepasst werden. Schauen wir uns an, wie Sie dabei vorgehen. Wie wir oben gesehen haben, beginnt jede Server-Konfiguration mit folgender Zeile:

$cfg['Servers'][$i]

Jeder Server-spezifische Abschnitt endet mit:

$cfg['ServerDefault'] = 1

Dabei steht der Wert Eins für den Standardserver. Allen anderen Servern wird der Wert Null zugewiesen, also

$cfg['ServerDefault'] = 0

Multiuser-Umgebung

Ähnlich verhält es sich, wollen Sie die Umgebung für mehrere Benutzer öffnen. In der Regel arbeitet man an Datenbanken ja auch nicht alleine, sondern mit mehreren Anwendern. Mittels phpMyAdmin kann man sich auf einem MySQL-Server per HTTP oder per Cookies kontrolliert einloggen.

Für welches dieser Verfahren Sie sich entscheiden, ist abhängig vom Einsatzbereich des MySQL-Servers. Für beide Verfahren muss zunächst ein Kontroll-User eingerichtet werden. Dies ist ein spezieller User, der meist als pma (als Abkürzung für phpMyAdmin) bezeichnet wird. Dieser User hat die Berechtigung, verschiedene Informationen aus der MySQL-Datenbank zu lesen. phpMyAdmin sendet mit diesem Kontrolluser lediglich Authentifizierungsdaten an die Datenbank. Es werden keinerlei Datenbankoperationen ausgeführt. Den Kontroll-User richtet man mit folgender Konfiguration in der phpMyAdmin-Konfigurationsdatei ein:

$cfg['Servers'][$i]['controluser']   = 'pma'

$cfg['Servers'][$i]['controlpass']   = 'passwort'

Die Authentifizierung per HTTP ist die gängigste Methode. Dabei werden über den Browser der Benutzername und das Passwort in das Login-Formular eingetragen und an phpMyAdmin übergeben. Um diese Methode zu aktivieren, nehmen Sie in der nach der Kontroll-User-Definition aufgeführten Konfigurationszeile die entsprechende Einstellung vor. Diese sieht wie folgt aus:

$cfg['Servers'][$i]['auth_type'] = 'http';

Dieses Verfahren unterliegt mehreren Einschränkungen:

- Abhängig von der PHP-Version kann es sein, dass die HTTP-Authentifizierung nicht unterstützt wird. Hierzu sollten Sie gegebenenfalls die PHP-Dokumentation zurate ziehen.

- Wollen Sie das phpMyAdmin-Verzeichnis durch eine .htaccess-Datei schützen, so kollidiert dies mit der HTTP-Authentifizierung. Die beiden Schutzmechanismen vertragen sich leider nicht.

- Außerdem kennt diese Methode keinen echten Logout-Vorgang. Es müssen alle Browser-Fenster geschlossen werden, damit die Verbindung zu dem Datenbanksystem beendet wird.

Allerdings hat dieses Verfahren auch seine Vorteile. So ist man nicht gezwungen, Cookies auf dem eigenen System zu speichern. Auch der Zugriff ist ein klein wenig schneller als bei der Cookie-basierten Authentifizierung. Im Fall der Authentifizierung per Cookies präsentiert der Login-Dialog eine entsprechende Meldung, wie sie nachstehender Abbildung zu entnehmen ist.

Die Cookie-Authentifizierung ist aktiviert.

Der Hinweis Ab diesem Punkt müssen Cookies aktiviert sein bzw. Cookies must be enabled past this point weist darauf hin, dass Browser-seitig das Setzen von Cookies aktiviert sein muss.

Bei diesem Verfahren wird der Benutzername in einem permanenten Browser-seitig gespeicherten Cookie hinterlegt. Das Passwort ist in einem temporären Cookie gespeichert. Bei Multiserver-Konfigurationen werden die Daten getrennt gespeichert. Um die Authentifizierung vor Attacken von außen zu sichern, wird das Blowfish-Verschlüsselungsverfahren verwendet.

Für den Einsatz dieses Verfahrens muss einmalig in der Konfigurationsdatei config.inc.php ein geheimes Passwort für das Verschlüsseln der als Cookies gespeicherten Passwörter hinterlegt werden. Dazu passen Sie folgende Konfiguration an:

$cfg['blowfish_secret'] = 'passwort';

Anschließend muss für jeden Server folgende Einstellung hinterlegt werden:

$cfg['Servers'][$i]['auth_type'] = 'cookie';

Mehr Sicherheit für phpMyAdmin

Wollen Sie phpMyAdmin nicht nur zu Testzwecken, sondern professionell im Unternehmen einsetzen, so gilt es, alle möglichen Sicherheitsmechanismen auszuloten und gegebenenfalls zu aktivieren. Es bieten sich mehrere Schutzmechanismen an. Wie bereits oben erwähnt, lässt sich mittels .htaccess exakt steuern, welche Benutzer und IP-Adressen Zugriff auf bestimmte Verzeichnisse haben dürfen – allerdings mit den erwähnten Einschränkung, dass keine Cookies verwendet werden können.

Auch die phpMyAdmin-Konfigurationsdatei bietet Möglichkeiten, den Zugriff zu beschränken. Hierfür verwenden Sie folgenden Konfigurationsabschnitt:

$cfg['Servers'][$i]['AllowDeny']['rules']

Mit dieser Konfiguration wird keine Einschränkung vorgenommen. Wollen Sie nun gezielt den Zugriff für Benutzer und IP-Adressen steuern, so bedienen Sie sich bestimmter Regeln, die in array() zusammengefasst werden. Hier ein Beispiel:

$cfg['Servers'][$i]['AllowDeny']['rules'] =

array('allow Peter from 192.168.0.11',

'allow Klaus from all');

Wie obigem Beispiel zu entnehmen ist, gewährt die Konfiguration dem Benutzer Peter den Zugriff vom System mit der IP-Adresse 192.168.0.11 und dem Benutzer Klaus von allen beliebigen Systemen. Mittels deny wird der Zugriff verhindert.

Es gibt zwei weitere Schutzmechanismen. So kann man eine Datenbank gezielt in der Datenbankliste der Web-Schnittstelle ausblenden. Dazu bedienen Sie sich des Parameters only_db:

$cfg['Servers'][$i]['only_db'] = '';

Soll lediglich die Datenbank1 in der Liste aufgeführt werden, so verwenden Sie folgende Konfiguration:

$cfg['Servers'][$i]['only_db'] = 'datenbank1';

Dabei können Sie auch Platzhalter verwenden. Die Einstellungen gelten übrigens für alle Benutzer einer Server-spezifischen Konfiguration.

Anhang B – More Info

Wenn Sie sich bis auf diese letzten Seiten vorgearbeitet haben, sind Sie auf dem besten Weg, phpMyAdmin-Profi zu werden. In diesem Fall benötigen Sie früher oder später weiterführende Informationen. Für weitere Informationen zu phpMyAdmin sei auf die phpMyAdmin-Homepage (http://www.phpmyadmin.net) verwiesen. Dort finden Sie insbesondere auch News und Sicherheitshinweise. Lohnende deutschsprachige Websites zu phpMyAdmin gibt es leider nicht.

Weitere lohnende Websites sind natürlich:

· MySQL-Homepage (http://www.mysql.com)

· PHP-Homepage (http://www.php.net)

Weitere Brain-Media.de-Bücher

Dreambox 8000 kompakt

Die Dreambox 8000 stellt ihre Vorgänger allesamt in den Schatten. Was Sie alles mit der Dreambox 8000 anfangen können, verrät Ihnen die Neuauflage unseres Dreambox-Klassikers. Mit einem Vorwort des Dream Multimedia-Geschäftsführers Karasu.

Umfang: 450 Seiten plus CD
ISBN: 978-3-939316-90-9
Preis: 29,80 EUR

Scribus 1.4 kompakt

Scribus ist längst ein ebenbürtiger Gegenspieler von InDesign & Co. In unserem Handbuch erfahren Sie alles, was Sie für den erfolgreichen Einstieg wissen müssen. Auf über 450 Seiten lernen Sie nahezu jede Programmfunktion kennen. Praxisbezogene Beispiele zeigen, wie Sie mit Scribus schnell ans Ziel gelangen.

Umfang: 465 Seiten plus DVD
ISBN: 978-3-939316-91-6
Preis: 29,80 EUR

X-Plane 10 kompakt

Der Klassiker unter den Flugsimulatoren geht in die zehnte Runde. Viele neue Funktionen und verbessertes Handling warten auf die Anwender. Kein Wunder also, dass die Fangemeinde wächst und wächst. Unser Handbuch beschreibt alles, was Sie für das Fliegen mit X-Plane wissen sollten.

Umfang: 430 Seiten
ISBN: 978-3-939316-96-1
Preis: 24,80 EUR

Audacity 2.0 kompakt

Audacity ist zweifelsohne das beliebteste freie Audioprogramm. Vom anfänglichen Geheimtipp hat sich der Editor zum Standard für die Aufzeichnung und Bearbeitung von Audiodaten gemausert. Das Vorwort steuert der ehemalige Core-Entwickler Markus Meyer bei.

Umfang: 306 Seiten
ISBN: 978-3-95444-027-6
Preis: 24,80 EUR

Dreambox 7020 HD kompakt

Der Klassiker im neuen Gewand: Die Dreambox 7020 HD besticht durch das OLED-Display an der Front sowie ihr flexibles Tuner-Konzept. In diesem Handbuch lernen Sie die vielfältigen Einsatzmöglichkeiten der Box kennen.
Mit einem Vorwort des Dream Multimedia-Geschäftsführers Karasu.

Umfang: 430 Seiten
ISBN: 978-3-939316-99-2
Preis: 24,80 EUR

Weitere Titel in Vorbereitung

Wir bauen unser Programm kontinuierlich aus. Aktuell befinden sich folgende Titel in Vorbereitung:

- Android Forensik

- X-Plane 10 Power Package

- OpenCart kompakt

- HTC One kompakt

- Galaxy Note III kompakt

- vTiger 6.0 kompakt

- PlayStation 4 kompakt

- FreeMind 1.0 kompakt

- Anti-Spam SMTP Proxy Server kompakt

Plus*

Plus* ˗ unser neues Angebot für Sie ... alle E-Books im Abo. Sie können 1 Jahr alle Brain-Media-Bücher als E-Book herunterladen und diese auf Ihrem PC, Tablet, iPad und Kindle verwenden ˗ und das ohne irgendwelche Einschränkungen. Das Beste: Plus+ schließt auch alle jene Bücher ein, die in diesem Jahr noch erscheinen.

Und das zum Sonderpreis von 29 Euro! Ein unschlagbares Angebot!

Auf unserer Website steht ein detaillierter Überblick aller Titel im PDF-Format zum Download bereit (ca. 6,2 MB), der bereits zu Plus* gehörende Titel aufführt und die in naher Zukunft hinzukommen.

Plus* startet im Herbst 2013.