Wie Du die Binary Logs Deiner MySQL Datenbank löschen und zeitlich begrenzen kannst

MySQL loggt Änderungen im Datenbestand. Dieses nützliche Feature ermöglicht es Dir, Datenveränderungen über einen langen Zeitraum hinweg zu analysieren und zurück zu verfolgen. Es sorgt bei großen Projekten aber auch dafür, dass die Festplatte sich stark füllt.

Die Logs können dabei über einen Eintrag in der mysql.cnf auf eine bestimmte Laufzeit begrenzt werden:
Um die Zeit der Speicherung auf Logs der letzten 7 Tage zu begrenzen, könnt Ihr folgende Query ausführen:

mysql> SET GLOBAL expire_logs_days = 7;

Alternativ könnt Ihr dies auch direkt in der /etc/my.cnf eintragen:

mysql>[mysqld]
expire_logs_days=7

Sämtliche Logs die älter als 7 Tage sind, kannst Du in MySQL über folgende Query entfernen.

PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 7 DAY) + INTERVAL 0 SECOND;

In MariaDB kannst Du für das Löschen der Logs den Befehl „Purge Binary“ nutzen um z.B. alle Logs vor dem 01.11.2022 zu entfernen.

PURGE BINARY LOGS BEFORE '2022-11-01';

Über den Author

Stefan Pingel: Ist Gründer & Geschäftsführer der Agentur 404MEDIA. Er studierte Medieninformatik sowie Web Applications Development und betreut seit über 15 Jahren Unternehmen jeder Branche und Größe im Hinblick auf die Entwicklung webgestützter Anwendungssoftware, SEO, E-Commerce sowie Marketing.