|
Fehlersuche mit MySQL
Das RDBMS (Relational Database Management System) MySQL [1] wird auch aufgrund seiner leichten Bedienbarkeit von Privat-Anwendern geschätzt. Dessen ungeachtet treten beim Entwickeln von Datenbank-Anwendungen selbstredend immer wieder Fehler auf. MySQL bietet gleich mehrere Möglichkeiten, um solche Probleme schnell in den Griff zu bekommen. Da wären einmal die erst vor kurzem veröffentlichten Programme MySQL Administrator und MySQL Browser zu nennen (beide stehen zum freien Download auf der Homepage bereit). Mit Hilfe dieser GUI-basierten Werkzeuge können Sie Statements testen, Server-Einstellungen im Handumdrehen überprüfen und gegebenenfalls korrigieren. Soweit, so gut. Und auch auf der Kommandozeile bietet MySQL Komfort: so ist es möglich, dort eine HTML-Ausgabe zu erzeugen. Mit Hilfe dieses Formats lassen sich tückische Fehler meistens schnell aufspüren; wenn zum Beispiel eine Tabelle vom Server akzeptiert wurde, aber die Abfrage trotzdem ein falsches Ergebnis liefert (wie es bei JOINS passieren kann). Ein möglicher Aufruf (eine funktionierende MySQL-Installation vorausgesetzt):
ich@meinrechner> mysql -H -e "SELECT * FROM user" mysql > test.html
Zur Erläuterung: der Schalter -H sorgt für die HTML-Ausgabe, der Schalter -e führt das Statement auf der Shell aus. Unmittelbar nach dem Statement folgt der Name der Datenbank (hier mysql). Die Ausgabe wird schliesslich in die Datei test.html umgeleitet. Sie können übrigens den tee-Befehl einsetzen, um die Ausgabe auf der Konsole zu betrachten und dieselbe gleichzeitig in eine Datei umleiten (weitere Beispiele für tee finden Sie weiter unten). Es kann sein, dass zusätzlich die Schalter -u username und -p (für das Passwort) verwendet werden müssen – abhängig davon, wie die Rechte vergeben wurden. Der modifizierte Aufruf:
ich@meinrechner> mysql -u root -p -H -e "SELECT * FROM user" mysql > test.html Enter password:
Nun die tee-Variante:
mysql -u root -p -H -e "SELECT * FROM user" mysql | tee test.html
Viel Spass.
Thomas Kaufmann
[1] Die MySQL Homepage: MySQL
|