302 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
5.9.2 Die allgemeine Anfragen-Log-Datei
Wenn Sie wissen wollen, was innerhalb mysqld geschieht, sollten Sie ihn mit --log[=file]
starten. Diese Option loggt alle Verbindungen und Anfragen in die Log-Datei
(vorgabem¨aßig ‘’hostname’.log’ benannt). Diese Log-Datei kann sehr n¨utzlich sein, wenn
Sie einen Fehler in einem Client vermuten und wissen wollen, was genau mysqld sich bei
dem dachte, was es vom Client geschickt bekam.
Vorgabem¨aßig startet das mysql.server-Skript den MySQL-Server mit der -l-Option.
Wenn Sie bessere Performance brauchen, wenn Sie MySQL in einer Produktionsumgebung
starten, k¨onnen Sie die -l-Option aus mysql.server entfernen oder sie zu --log-binary
¨andern.
Die Eintr¨age in diese Log-Datei werden geschrieben, wenn mysqld die Anfragen erh¨alt. Die
Reihenfolge kann vor derjenigen abweichen, in der die Statements ausgef¨uhrt werden. Das
steht im Gegensatz zur Update-Log-Datei und zur Bin¨ar-Log-Datei, bei denen geschrieben
wird, nachdem die Anfrage ausgef ¨uhrt wurde, aber bevor irgend welche Sperren aufgehoben
werden.
5.9.3 Die Update-Log-Datei
HINWEIS: Die Update-Log-Datei wird durch die bin¨are Log-Datei ersetzt. Siehe Ab-
schnitt 5.9.4 [Binary log], Seite 303. Mit dieser k¨onnen Sie alles machen, was Sie mit
der Update-Log-Datei machen k¨onnen.
Wenn er mit der --log-update[=datei]-Option gestartet wird, schreibt mysqld eine
Log-Datei, die alle SQL-Befehle enth¨alt, die Daten aktualisieren. Wenn kein Dateiname
angegeben wird, ist die Vorgabe der Name der Host-Maschine. Wenn ein Dateiname
angegeben wird, der aber keine Pfadangabe enth¨alt, wird die Datei ins Daten-Verzeichnis
geschrieben. Wenn ‘datei’ keine Erweiterung hat, erzeugt mysqld eine Log-Datei, die
er wie folgt benennt: ‘datei.###’, wobei ### eine Zahl ist, die jedes Mal hochgez¨ahlt
wird, wenn Sie mysqladmin refresh oder mysqladmin flush-logs oder das FLUSH
LOGS-Statement ausf¨uhren, oder wenn Sie den Server neu starten.
HINWEIS: Damit das dargestellte Schema funktioniert, sollten Sie NICHT eigene Dateien
mit demselben Dateinamen wie die Update-Log-Datei plus Erweiterungen, die als die
hochgez¨ahlte Zahl betrachtet werden k¨onnten, im Verzeichnis anlegen, das von der
Update-Log-Datei benutzt wird!
Wenn Sie die --log oder -l-Optionen benutzen, schreibt mysqld eine allgemeine Log-Datei
mit dem Dateinamen ‘hostname.log’. Neustarts und Refresh-Operationen f¨uhren dann
nicht dazu, dass eine neue Log-Datei erzeugt wird (obwohl diese geschlossen und wieder
ge¨offnet wird). In diesem Fall k¨onnen Sie sie (unter Unix) wie folgt kopieren:
mv hostname.log hostname-old.log
mysqladmin flush-logs
cp hostname-old.log ins-datensicherungs-verzeichnis
rm hostname-old.log
Das Mitloggen mittels der Update-Log-Datei ist clever, weil es nur Statements loggt, die
tats¨achlich Daten aktualisieren. Wenn ein UPDATE oder ein DELETE mit einem WHERE keine
Kommentare zu diesen Handbüchern