Schaltzentralen

Für den kleinen MySQL-Abteilungsserver reicht zur Verwaltung der mitgelieferte Kommandozeilen-Client. Bei größeren Installationen darf es aber schon etwas mehr Komfort sein. Bislang ist die Auswahl auf drei plattformneutrale Tools beschränkt.

vorlesen Druckansicht 17 Kommentare lesen
Lesezeit: 10 Min.
Von
  • Christian Kirsch
Inhaltsverzeichnis

Am Anfang war MySQL eine kleine zarte Datenbank, die man leicht an einem Nachmittag installieren und zum Laufen bringen konnte. AuĂźer dem automatischen Starten und Herunterfahren beim An- und Ausschalten des Rechners fielen kaum Verwaltungsaufgaben an.

Geblieben ist die flotte Installation, doch angesichts des zunehmenden Funktionsumfangs gilt der Kommandozeilen-Client mysql nicht mehr in allen Fällen als das bevorzugte Werkzeug. Beim Zuweisen von Rechten oder dem Ändern von Servervariablen kostet das Hantieren mit den nötigen SQL-Kommandos GRANT, REVOKE und SET wegen der Tipperei viel Zeit und Nerven.

Wer derlei Arbeiten häufig zu erledigen hat, könnte sich das Leben mit einem geeigneten interaktiven Werkzeug erleichtern. Davon gibt’s inzwischen einige, nicht nur aus dem Hause MySQL AB. Auswahlkriterium für die folgende Übersicht war die Plattformunabhängigkeit: Das Werkzeug soll mindestens für Unix/Linux und Windows, möglichst auch für Mac OS X vorhanden sein, sodass Administratoren sich nicht auf ein Betriebssystem festlegen müssen.

Erwarten kann man von Administrationswerkzeugen, dass sie Informationen über den aktuellen Zustand des Servers liefern: Anzahl der Verbindungen, Speicherverbrauch, Auslastung des Query-Cache und so weiter sollten sie anzeigen. Wo das sinnvoll ist, müssen sie es erlauben, die Leistung des Servers zu beeinflussen, etwa durch Änderungen von Parametern für den Schlüsselpuffer oder den Query-Cache. Aufgrund einer Besonderheit von MySQL überleben solche Änderungen jedoch einen Neustart des Servers nur, wenn das Administrationstool auf demselben Rechner läuft wie er. Denn zur Konfiguration dient eine Datei (etwa /etc/my.cnf), die der Server bei jedem Start liest. Für Änderungen muss deshalb das Tool selbst Schreibzugriff auf diese Datei haben. Sinnvollerweise sollten jedoch möglichst viele Serveroptionen mit Mitteln der Datenbank selber zu ändern sein, das heißt mit geeigneten SQL-Kommandos. Damit ließe sich eine saubere Trennung von Datenbank- und Systemverwaltung verwirklichen und das Arbeiten mit Administrationswerkzeugen übers Netz erlauben.

Aufgaben, die man per GUI leichter erledigen kann, sind das Sichern und Zurückspielen von Daten(banken) einschließlich Import etwa von CSV-Files, das Anlegen von Benutzern und die Verwaltung ihrer Zugriffsrechte. Wünschenswert ist ebenfalls die Steuerung der Replikation. Änderungen an Tabellen dagegen fallen nicht in den typischen Aufgabenbereich von Administratoren. Ausnahmen davon mögen die Anpassung von Zeichensatz und Sortierreihenfolge sein, die bei der Migration von Tabellen in aktuelle MySQL-Versionen erforderlich werden kann, oder das Verschieben von Tabellen auf eine andere Platte.

Bei anderen RDBMS können Stored Procedures manche Administrationsaufgaben übernehmen - so weit ist MySQL noch nicht, da es keine Stored Procedures kennt. Deshalb spielen Werkzeuge für diese Objekte wie Editor, Debugger et cetera unter dem Gesichtspunkt der Systemverwaltung keine Rolle. Aus diesem Grund fehlen hier alle Produkte, die sich vor allem auf die Entwicklung von Datenbankanwendungen und die Arbeit mit Stored Procedures konzentrieren.

Zum Test dienten ein Pentium4-Rechner mit Suse 9.2 und lokalem MySQL 4.1.5 sowie ein per VPN angebundener Dual-Pentium III mit Red Hats Enterprise Linux und MySQL4.1.8. In einem Fall spielte ein Ibook von Apple mit, dazu später mehr.

Eines der ältesten Werkzeuge ist das weit verbreitete PHPMyAdmin. Die in PHP geschriebene Skriptsammlung liegt mittlerweile in Version 2.6 vor (im Test lief 2.6.1-pl3) und funktioniert gleichermaßen mit PHP5 wie mit PHP4. Wer das Werkzeug allerdings vorwiegend für Verwaltungsarbeiten nutzen will, sieht sich schnell enttäuscht. Außer der Anzeige aktueller Serverparameter, der Benutzerverwaltung und der Sicherung von Datenbanken fehlen ihm alle nötigen Funktionen. Laufzeitparameter wie die Größe des Query-Cache oder des Schlüsselpuffers lassen sich in PHPMyAdmin nur per SQL-Befehl beeinflussen, das Tool gibt dafür keine Hilfestellung.

Zur Änderung von Benutzerrechten greift es direkt auf die MySQL-Tabellen user, host et cetera zu, statt die Befehle GRANT und REVOKE zu benutzen. Dadurch hängt die Funktionsfähigkeit der Benutzerverwaltung von der internen Tabellenstruktur ab - eine fragwürdige Entscheidung. Stärken zeigt PHPMyAdmin hingegen bei der Bearbeitung von Tabellen und deren Daten. Für diesen Zweck dürften es viele Anwender einsetzen, denen ihr Provider das Tool zusammen mit MySQL zur Verfügung stellt.

Rechte lassen sich in PHPMyAdmin bis hinunter auf Tabellenspalten vergeben (Abb. 1).

Bei der Datensicherung und dem Zurückspielen sieht es jedoch schlecht aus: Sichern lassen sich Tabellen und Datenbanken zwar als SQL- und CSV-Dateien, bequem zurückspielen jedoch nur Erstere. MySQL kennt zwar LOAD DATA INFILE, PHPMyAdmin bietet dafür jedoch kein intuitives Interface: Vor dem Laden muss der Anwender zunächst eine neue Tabelle mit der passenden Struktur erzeugen. Außerdem ist die Größe der Datensicherung implizit beschränkt: Einmal über die Laufzeit eines PHP-Skripts, zum anderen durch den Umfang der hochladbaren Datei.

PHPMyAdmin bezieht einen großen Teil seiner Informationen aus einer PHP-Datei, die es beim Start liest. Hier sind beispielsweise verfügbare Server einzutragen und die Datenbanken, die das Werkzeug dort benutzen darf. Auch die Zugriffssteuerung erfolgt in dieser Datei. Das ist reichlich umständlich und für größere Administrationsaufgaben wenig hilfreich: Warum sollte man erst einen Server in eine externe Datei eintragen, um sich mit ihm verbinden zu können? Ein flexibler Dialog sollte diese Parameter erfragen und weiterreichen können.

Vom Hersteller der Datenbank kommt MySQL-Administrator, im Test lief die Version 1.0.19. Gestartet vom Superuser, kann das Werkzeug den MySQL-Server beenden und neu starten. Zwar will das Programm zuerst die Verbindung zu einem MySQL-Server herstellen - dies lässt sich jedoch durch Drücken der Ctrl-Taste im Verbindungsdialog umgehen. Anschließend kann man einen lokalen MySQL-Server starten, wozu der MySQL-Administrator unter Unix/Linux das Start/Stop-Skript benutzt.

MySQL-Administrator erlaubt das dauerhafte Ändern von Serverparametern, wenn der Benutzer Schreibrechte auf my.cnf besitzt (Abb. 2).

Herunterfahren könnte ein Benutzer mit hinreichenden Rechten den Server zwar auch per mysqladmin - nur starten lässt er sich so nicht. Bei diesem Aspekt gehen Unix- und MySQL-Verwaltung etwas durcheinander, folglich ebenfalls die jeweils nötigen Rechte. Dasselbe gilt wie eingangs erwähnt für die unter Unix/Linux in /etc/my.cnf eingetragenen Serverparameter. Sie lassen sich mit MySQL-Administrator dauerhaft nur ändern, wenn das Programm auf derselben Maschine läuft wie der Server und sein Nutzer Schreibrechte für die Datei besitzt. Ähnliches gilt für die Anzeige der Log-Dateien: ohne Root-Rechte ebenfalls unmöglich. Der Nutzen dieser Funktion erscheint ohnehin fraglich, da eine Suche in diesen Dateien oder das Sortieren etwa nach Aufrufen von einem bestimmten Host nicht möglich sind.

Abgesehen von diesen prinzipbedingten Lücken bietet MySQL-Administrator alle Funktionen, die man von einem Verwaltungstool erwartet. Die Benutzerverwaltung ermöglicht sämtliche Einstellungen bis hin zur Vergabe von Rechten für einzelne Spalten. Der Typ von Tabellen lässt sich im Betrieb ändern, Sicherungen kompletter Datenbanken oder einzelner Tabellen erzeugen. Backups kann man unter Unix/Linux für die regelmäßige Ausführung per cron markieren. In der Praxis klappt das jedoch nicht fehlerfrei, da MySQL-Administrator nur einen relativen Pfad zu seinem Binary in die crontab-Datei einträgt.

Den aktuellen Zustand des Servers kann man sich in MySQL-Administrator als zeitabhängige Grafik zeigen lassen. Leider beginnt das Programm erst mit dem Zeichnen dieses Graphen, wenn der Anwender den entsprechenden Reiter aktiviert. Dadurch sind weder der aktuelle Status noch seine Entwicklung in der Vergangenheit auf Anhieb erkennbar. Mehr Informationen zumindest über den momentanen Zustand bietet da die Liste der Statusvariablen. Da die meisten dieser Einträge mit einem kurzen erklärenden Kommentar versehen sind, lassen sie sich ohne Blick in die MySQL-Dokumentation interpretieren.

Als einziges nicht freies Produkt im Test kam Navicat zum Einsatz. Es liegt in Versionen für Linux, Mac OS X und Windows vor. Die Linux-Variante war jedoch unter Suse 9.2 nicht zum Arbeiten zu bewegen, das Programm stürzte bei jedem Startversuch sofort ab. Der Hersteller kündigte an, den Fehler in der nächsten Version zu beheben. Unter Mac OS X hingegen funktionierte die Demo-Version klaglos, sodass in diesem Fall ein G3-Ibook für den Test zum Einsatz kam.

Bei der Rechteverwaltung bietet Navicat dieselben Funktionen wie PHPMyAdmin und MySQL-Administrator (Abb. 3).

Seine administrativen Funktionen sind nicht so umfangreich wie die von MySQL-Administrator, bieten jedoch mehr als PHPMyAdmin. Serverparameter zeigt Navicat ohne weitere Erläuterung an, ändern kann man sie jedoch nicht. Tabellen lassen sich umbenennen und reorganisieren, man kann jedoch anders als bei MySQL-Administrator nicht den Typ ändern. Bei der Benutzerverwaltung bietet Navicat alles Nötige, bis hin zur Rechtevergabe für einzelne Spalten.

Datensicherungen sind ähnlich wie bei MySQL-Administrator sofort oder zu einem festgelegten Termin ausführbar. Allerdings verschweigt Navicat, wo es die Daten speichert und lässt nicht zu, dass man ein Backup in einer anderen Datenbank wieder einspielt, etwa um eine Kopie für Experimente zu erzeugen. An diesen Stellen wäre mehr Transparenz wünschenswert. Der Import von SQL- oder CSV-Dateien ist nicht möglich.

Die Auswahl an Verwaltungswerkzeugen für MySQL ist recht überschaubar. Für größere Installationen mit viel Aufwand scheint MySQL-Administrator am besten geeignet. Navicat kann zumindest einige einfache Tätigkeiten erleichtern. PHPMyAdmin hat nur bei der Benutzerverwaltung überhaupt brauchbare Verwaltungsfunktionen zu bieten, sein Schwerpunkt liegt eindeutig auf der Datenbearbeitung.

Quest arbeitet zurzeit an einer Toad-Version [1] für MySQL. Diese ist jedoch noch im Betastadium und bietet ebenfalls kaum Administrationsfunktionen. Das freie Tora (tora.sf.net) ließ sich in Version 1.3.16 unter Suse 9.2 nicht zur Zusammenarbeit mit MySQLw bewegen. Angesichts der ohnehin nur mit Schwierigkeiten zu bewältigenden Installation und der spärlichen Dokumentation kann man von diesem Programm im Moment nur abraten.

[1] Wolfgang Gabriel; DB-Administration; Der Froschkönig; Datenbanken verwalten mit Toad; iX 7/2004, S. 66

Daten und Preise
PHPMyAdmin
Bezugsquelle phpmyadmin.net
Preis freie Software
Voraussetzungen Apache, PHP
Platzbedarf knapp 9 MByte
Betriebssysteme Unix, Linux, Windows, Mac OS X
Navicat
Bezugsquelle navicat.com
Preis Linux-Version ab 55 US-$, Mac/Windows-Version ab 95 US-$
Platzbedarf knapp 9 MByte
Betriebssysteme Linux, Windows, Mac OS X
MySQL-Administrator
Bezugsquelle dev.mysql.com
Preis freie Software
Voraussetzungen unter Linux/Unix: X11, Teile von Gnome, C++-Runtime
Platzbedarf gut 8 MByte
Betriebssysteme Unix, Linux, Windows, Mac OS X
Mehr Infos

iX-TRACT

  • Verwaltungswerkzeuge fĂĽr MySQL sollten aktuelle Serverparameter anzeigen und ändern sowie Benutzerrechte vergeben können.
  • WĂĽnschenswert sind zudem Backup- und Restorefunktionen sowie Bearbeitung der Replikationseinstellungen und Methoden zur Reparatur von Tabellen.
  • Aufgrund der MySQL-Architektur sind einige Funktionen nur schwer realisierbar.
Mehr Infos

iX-WERTUNG

PHPMyAdmin
[+] kein spezieller Client nötig
[+] wesentliche Administrationsfunktionen vorhanden
[-] aufwendige Konfiguration
[-] Benutzerverwaltung nicht zukunftssicher
[-] kein Einfluss auf Serverparameter

Navicat
[+] wesentliche Administrationsfunktionen vorhanden
[-] kein Einfluss auf Serverparameter
[-] kein Import von Textdateien
[-] undurchsichtiges Backup-Konzept

MySQL-Administrator
[+] kompletter Satz an Administrationsfunktionen
[+] lokaler Server lässt sich starten und beenden
[+] dauerhafte Änderung von Serverparametern möglich
[-] Log-Dateien nicht auswertbar
[-] Fehler im Crontab-Eintrag bei Backups

(ck)