slow query log leeren

slow query log leeren

am 10.04.2008 11:02:26 von Frank Arthur

Weiß jemand, ob ich das slow query log von MySQL einfach löschen kann und
MySQL legt sie dann automatisch neu an?
Die slow query log-Datei legt auf unserem Server Geisterhaftes Verhalten
an den Tag. Ich wollte das testen, in dem ich sie umbenannt (von "slow-
query.log" zu "x_slow-query.log") und eine neue leere "slow-query.log"
erstellt habe, aber MySQL hat dann einfach in die umbenannte (alte) Datei
weiterhin geschrieben. Dann hab ich die Datei in eine unterverzeichnis
"temp" verschoben, aber auch da hat MySQL einfach weiter rein
geschrieben. Sehr merkwürdig.
Jetzt hab ich die Datei, bis auf die 3 header-Zeilen gelöscht und MySQL
schreibt weiterhin da rein. Einfacher wäre es aber sie hin und wieder zu
löschen, da ich keinen Befehl gefunden habe unter Linux eine Datei zu
leeren.

Re: slow query log leeren

am 10.04.2008 11:11:49 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: slow query log leeren

am 10.04.2008 11:18:09 von Frank Arthur

> begin Frank Arthur schrieb:
>> Dann hab ich die Datei in eine unterverzeichnis "temp"
>> verschoben, aber auch da hat MySQL einfach weiter rein geschrieben.
>> Sehr merkwürdig.

Andreas Kretschmer schrieb:
> Normales Verhalten, es werden nur die inodes in den Verzeichnissen
> geändert, MySQL schreibt aber weiterhin in dieselbe Datei.

Meinst du ich kann sie löschen und sie wird von MySQL automatisch neu
angelegt?

Re: slow query log leeren

am 10.04.2008 11:33:17 von Axel Schwenke

Frank Arthur wrote:

> Weiß jemand, ob ich das slow query log von MySQL einfach löschen kann und
> MySQL legt sie dann automatisch neu an?

Ja. Das Handbuch weiß das. Du suchst FLUSH LOGS.

> Die slow query log-Datei legt auf unserem Server Geisterhaftes Verhalten
> an den Tag. Ich wollte das testen, in dem ich sie umbenannt (von "slow-
> query.log" zu "x_slow-query.log") und eine neue leere "slow-query.log"
> erstellt habe, aber MySQL hat dann einfach in die umbenannte (alte) Datei
> weiterhin geschrieben. Dann hab ich die Datei in eine unterverzeichnis
> "temp" verschoben, aber auch da hat MySQL einfach weiter rein
> geschrieben. Sehr merkwürdig.

Kein bisschen merkwürdig. Willkommen bei UNIX, wo eine Datei mehrere
(oder gar keinen) Namen haben kann. Verzeichniseinträge und die Inode
sind halt verschiedene Dinge.


XL

Re: slow query log leeren

am 10.04.2008 12:00:07 von Frank Arthur

>> Weiß jemand, ob ich das slow query log von MySQL einfach löschen kann
>> und MySQL legt sie dann automatisch neu an?
>
> Ja. Das Handbuch weiß das. Du suchst FLUSH LOGS.

Mist, geht nicht. Keine RELOAD privilege.
Kann ich leider auch nicht ändern, da es ein Managed server ist, bei dem
ich keinen Zugriff auf die MySQL-Konfiguration habe.

>> Die slow query log-Datei legt auf unserem Server Geisterhaftes
>> Verhalten an den Tag. Ich wollte das testen, in dem ich sie umbenannt
>> (von "slow- query.log" zu "x_slow-query.log") und eine neue leere
>> "slow-query.log" erstellt habe, aber MySQL hat dann einfach in die
>> umbenannte (alte) Datei weiterhin geschrieben. Dann hab ich die Datei
>> in eine unterverzeichnis "temp" verschoben, aber auch da hat MySQL
>> einfach weiter rein geschrieben. Sehr merkwürdig.
>
> Kein bisschen merkwürdig. Willkommen bei UNIX, wo eine Datei mehrere
> (oder gar keinen) Namen haben kann. Verzeichniseinträge und die Inode
> sind halt verschiedene Dinge.

Hmm, ok. Bisher war es noch nicht nötig mich so tiefgreifend mit Unix zu
beschäftigen.

Re: slow query log leeren

am 10.04.2008 13:25:34 von Harald Wenninger

* Frank Arthur tat kund und zu wissen:

>>> Dann hab ich die Datei in eine unterverzeichnis "temp"
>>> verschoben, aber auch da hat MySQL einfach weiter rein geschrieben.
>>> Sehr merkwürdig.
>> Normales Verhalten, es werden nur die inodes in den Verzeichnissen
>> geändert, MySQL schreibt aber weiterhin in dieselbe Datei.
> Meinst du ich kann sie löschen und sie wird von MySQL automatisch neu
> angelegt?

Nein. MySQL würde weiter in die Datei schreiben, die nur keinen
Verzeichniseintrag mehr hat. Erst wenn MySQL die Datei schließt, würde
die tatsächlich verschwinden.

Gruß,
Harald

--
Those who dont't know talk. Those who don't talk know.

Re: slow query log leeren

am 10.04.2008 13:59:27 von Frank Arthur

>>>> Dann hab ich die Datei in eine unterverzeichnis "temp" verschoben,
>>>> aber auch da hat MySQL einfach weiter rein geschrieben. Sehr
>>>> merkwürdig.
>>> Normales Verhalten, es werden nur die inodes in den Verzeichnissen
>>> geändert, MySQL schreibt aber weiterhin in dieselbe Datei.
>> Meinst du ich kann sie löschen und sie wird von MySQL automatisch neu
>> angelegt?

Harald Wenninger schrieb:
> Nein. MySQL würde weiter in die Datei schreiben, die nur keinen
> Verzeichniseintrag mehr hat. Erst wenn MySQL die Datei schließt, würde
> die tatsächlich verschwinden.

Schade.
Ich habe bereits gesucht, aber keinen Linux-Befehl gefunden, der mir den
Inhalt der Datei leeren könnte, kennst du vielleicht einen?
Ansonsten müsste ich die Datei weiterhin per Hand leeren. Wäre aber nicht
so schlimm, der slow query log sollte eigentlich auch nicht mehr so lange
laufen.

Re: slow query log leeren

am 10.04.2008 16:30:57 von David Fuhr

Frank Arthur wrote in
news:666dovF2iko3eU4@mid.uni-berlin.de:

> Ich habe bereits gesucht, aber keinen Linux-Befehl gefunden, der mir
> den Inhalt der Datei leeren könnte, kennst du vielleicht einen?

echo "" > mysql.log

Re: slow query log leeren

am 10.04.2008 17:24:26 von Claus Reibenstein

Frank Arthur schrieb:

>> [Linux-Logfile(s)]
>
> Ich habe bereits gesucht, aber keinen Linux-Befehl gefunden, der mir den
> Inhalt der Datei leeren könnte, kennst du vielleicht einen?

Es _kann_ keinen Linux-Befehl dafür geben, weil Linux sich nicht um die
Dateien von irgendwelchen Anwendungen kümmert. Wenn überhaupt, solltest
Du nach einem MySQL-Befehl suchen.

Gruß. Claus

Re: slow query log leeren

am 11.04.2008 09:01:21 von Frank Arthur

> Frank Arthur wrote in
>> Ich habe bereits gesucht, aber keinen Linux-Befehl gefunden, der mir
>> den Inhalt der Datei leeren könnte, kennst du vielleicht einen?

David Fuhr schrieb:
> echo "" > mysql.log

Danach ist die Datei leer, das stimmt. Habe es mit einer testweise
angelegten Datei getestet. Aber ich habe etwas Angst den Befehl auf die
original slow query log-Datei anzuwenden, da ich nicht weiß, ob der
Befehl wirklich die Datei leert und nicht nur durch eine neue leere Datei
überschreibt. Im zweiten Fall schreibt MySQL dann in einen inode, der ins
leere verweist. Claus hat ja geschrieben, dass es keine Linux-Befehl zum
Leeren gibt.

Re: slow query log leeren

am 12.04.2008 09:38:12 von Matthias Watermann

On Fri, 11 Apr 2008 07:01:21 +0000, Frank Arthur wrote:

>> Frank Arthur wrote in
>>> Ich habe bereits gesucht, aber keinen Linux-Befehl gefunden, der mir
>>> den Inhalt der Datei leeren könnte, kennst du vielleicht einen?
>
> David Fuhr schrieb:
>> echo "" > mysql.log

Oder kürzer (mit "bash"):

>mysql.log

> [...]
> ob der
> Befehl wirklich die Datei leert und nicht nur durch eine neue leere
> Datei überschreibt.

Äh, was ist der Unterschied?

> Im zweiten Fall schreibt MySQL dann in einen inode,
> der ins leere verweist.

Soetwas geschähe nur, wenn Du die Datei erst löscht und danach unter
demselben Namen eine neue erzeugst.

> Claus hat ja geschrieben, dass es keine Linux-Befehl zum Leeren gibt.

Wenn Du zusätzliche Sicherheit möchtest, verwendest Du in MySQL den
Befehl "FLUSH LOGS" oder auf der Kommandozeile "mysqladmin flush-logs"
oder "mysqladmin refresh".


--
Matthias
/"\
\ / ASCII RIBBON CAMPAIGN - AGAINST HTML MAIL
X - AGAINST M$ ATTACHMENTS
/ \

Re: slow query log leeren

am 14.04.2008 09:45:42 von David Fuhr

Frank Arthur wrote in
news:668gm1F2blsemU1@mid.uni-berlin.de:

>> Frank Arthur wrote in
>>> Ich habe bereits gesucht, aber keinen Linux-Befehl gefunden, der mir
>>> den Inhalt der Datei leeren könnte, kennst du vielleicht einen?
>
> David Fuhr schrieb:
>> echo "" > mysql.log
>
> Danach ist die Datei leer, das stimmt. Habe es mit einer testweise
> angelegten Datei getestet. Aber ich habe etwas Angst den Befehl auf
> die original slow query log-Datei anzuwenden, da ich nicht weiß, ob
> der Befehl wirklich die Datei leert und nicht nur durch eine neue
> leere Datei überschreibt.

/tmp$ ls -i mysql.log
305017938 mysql.log
/tmp$ echo "" > mysql.log
/tmp$ ls -i mysql.log
305017938 mysql.log

Fazit: gleiche Datei.

Gruß

Re: slow query log leeren

am 14.04.2008 12:03:54 von Frank Arthur

> /tmp$ ls -i mysql.log
> 305017938 mysql.log
> /tmp$ echo "" > mysql.log
> /tmp$ ls -i mysql.log
> 305017938 mysql.log
>
> Fazit: gleiche Datei.

Ok, dann kann ich wohl nicht mehr viel gegen sagen. :-)
Vielen Dank fürs Nachprüfen.