Weiter Zurück [Inhalt] Online Suche im Handbuch

31.18 MySQL im Batch Modus

Wer bis hierhin fleißig war, der hat sicher viel eingetippt und ausprobiert. Insbesondere die CREATE TABLE Konstrukte können bei komplexen Datenbanken sehr lang sein. Wer einen Fehler gemacht hat, der muß alles nochmal eintippen. Schlecht - es geht besser. Man kann und sollte stets alle CREATE TABLE und SELECT Statements in eine Batchdatei, also eine ASCII-Datei schreiben. Editiert werden kann mit jedem beliebigen Editor. Insbesondere, wenn man sich noch in dem Anfangsstadium des Aufbaus einer Datenbank befindet, und noch viel nachbessern muß, macht sich eine Batchdatei schnell bezahlt. Wichtig ist es auch, SELECT Statements in eine Datei zu schreiben. Wie schon gesehen, sind einige Statements sehr lang und komplex. Wer mit großen Datenbanken hantiert (1-60 GByte) (ja, MySQL kann unter LINUX ALPHA, Solaris 2.7, Tru64 UNIX, und SGI IRIX so große Datenbanken handeln), der wird feststellen, daß die Durchläufe für monatliche Statistiken manchmal eine Nacht dauern. Die Ausgabe kann mitunter sehr groß sein. In diesem Fall läßt man die Ausgabe in eine Datei schreiben. Im Batch-Mode kann man diese Statements auch in die CRONTAB-Datei schreiben, mehr dazu nun im folgenden Abschnitt.

In allen vorangegangenen Abschnitten wurde MySQL interaktiv benutzt, um Abfragen zu starten. Die Ausgabe erfolgte jeweils auf den Bildschirm. Das Programm mysql ist das Frontend zum mysqld, nicht vergessen ! Ein Beispiel für den Batch-Modus:

shell> mysql < batch-file

Dieses Beispiel wird wohl auf Ihrer Datenbank nicht funktionieren, warum, das dürfte klarer werden, wenn man sich das nächste Beispiel anschaut:

shell> mysql -h host -u user -p < batch-file
Enter password: ********

Falls die Ausgabe zu lang ist, kann man sich die Seiten auch seitenweise anzeigen lassen:

      shell> mysql < batch-file | more

Für die Ausgabe in eine Datei sollte man folgendes Beispiel testen:

      shell> mysql < batch-file > mysql.out


Weiter Zurück [Inhalt] Online Suche im Handbuch