Auf der Suche nach einem fremden Programmierfehler war für mich das bin-log von MySQL nützlich. Im Verzeichnis /var/lib/mysql, wo auch die Datenbanken liegen, finden sich bei mir mehr als fünfzig Dateien mit fortlaufender Nummerierung der Art mysql-bin.000001 . Dies Dateien beinhalten alle auf dem System ausgeführten SQL-Befehle, also alle Inserts, Updates und dergleichen. Die Inhalte können mit dem Programm mysqlbinlog ausgelesen werden.
mysqlbinlog --database=DBX25631 mysql-bin.000049
Hier werden konkret alle Zugriffe auf die Datenbank DBX25631 ausgegeben, die sich in der Datei mysql-bin.000049 befinden. Datum und Uhrzeit finden sich auch in der Ausgabe:
# at 487195020 #120610 19:59:36 server id 1 end_log_pos 487195168 Query thread_id=468274 exec_time=0 error_code=0 SET TIMESTAMP=1339351176/*!*/; INSERT INTO `jos_acajoom_xonfig` VALUES ('date_update', '2011-08-15 14:54:54', 0) /*!*/;
Mit diesen Informationen hat man eine Chance fehlerhafte Zugriffe zu erkennen.
Leider werden die Dateien sehr groß (je 1GB) und ihre Zahl scheint nicht beschränkt zu sein (die Stellenzahl lässt mich erschrecken).
Im Abschnitt [mysqld] der Konfigurationsdatei /etc/my.conf lässt sich die Lebensdauer der Logdateien beschränken, im Beispiel auf 90 Tage.
expire_logs_days = 90
Das sollte den Speicherplatzbedarf deutlich reduzieren.