blog.bartlweb - a technologist's external brain

Logrotate-Fehler für MySQL unter Ubuntu

Nach dem Wiederherstellen meines Backups der MySQL-Dateien auf einer neuen Installation von Ubuntu habe ich die folgende Fehlermeldung von logrotate erhalten.

/etc/cron.daily/logrotate:
error: error running shared postrotate script for '/var/log/mysql.log /var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log '
run-parts: /etc/cron.daily/logrotate exited with return code 1

Ursache

Der Fehler liegt in den Zugangsdaten des MySQL-Users debian-sys-maint. Logrotate benötigt Zugriff auf die MySQL-Datenbank und versucht dies über den vorher genannten User. Die Lösung liegt dabei entweder im Wiederherstellen der Datei /etc/mysql/debian.cnf der alten Installation oder im Anpassen des Passworts für den MySQL-Benutzer.

Lösung

Ermitteln Sie zunächst das Passwort des Benutzers debian-sys-maint in der Datei /etc/mysql-maint. Danach können Sie dieses über die folgenden Befehle in MySQL neu setzen.

mysql -u root -p use mysql;
update user set password=password('<passwort>') where user='debian-sys-maint';

Sollten Sie die Datenbank von einem nicht Debian-System wiederhergestellt haben, dann können Sie den MySQL-Benutzer mit dem folgenden Befehl anlegen.

GRANT RELOAD, SHUTDOWN, PROCESS, SHOW DATABASES, SUPER, LOCK TABLES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY PASSWORD password('<passwort>');

Damit MySQL die Änderungen übernimmt, führen Sie entweder den SQL-Befehl flush privileges; aus oder starten Sie den Dienst neu.

Dieser Artikel hat Dir deinen Tag gerettet?

... und mühevolles Probieren, Recherchieren und damit Stunden an Zeit gespart? Oder einfach nur Dein Problem gelöst?

Dann würde ich mich freuen, wenn Du meine Zeit für die Erstellung dieses Blogartikels mit einer kleinen Anerkennung honorierst:

Zahlung mit PayPal oder Kreditkarte.

Hinweis zur Verwendung

Die Übermittlung einer Zahlung ist eine persönliche Anerkennung Ihrerseits an den Entwickler (Christian Bartl, Privatperson). Eine Zahlung ist nicht zweckgebunden und es ist keine Gegenleistung zu erwarten. Bitte beachten Sie, dass für eine übermittelte Zahlung keine Quittung ausgestellt werden kann.

Über den Autor

Christian Bartl

Christian Bartl Requirements Engineer
& Solution Architect für Online und Mobile

Als Technologie-Enthusiast und begeisterter Programmierer entwickle ich in meiner Freizeit Websites, Software und IT-Lösungen, die mir selbst und anderen den Alltag vereinfachen.

mehr auf christian.bartl.me

Kommentare

  1. Hallo,

    danke für diesen Eintrag. In meinem Fall war in der /etc/mysql/debian.cnf ein falsches Passwort eingetragen. Auf den Gedanken, dass logrotate diesen account dafür nutzt, wäre ich nicht so schnell gekommen. Vielen Dank, hat meinen Tag (und das Wochenende) gerettet!

    kommentieren

  2. Danke für den Artikel!
    Kleine Korrektur (jedenfalls funktionierte es bei mir nur so)
    Der GRANT Befehl muss so lauten:

    GRANT RELOAD, SHUTDOWN, PROCESS, SHOW DATABASES, SUPER, LOCK TABLES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '';

    statt ... IDENTIFIED BY PASSWORD password('');

    kommentieren

Kommentar schreiben

Der hier angegebene Name wird gemeinsam mit deinem Kommentar auf der Website veröffentlicht.

Deine E-Mail-Adresse wird zur einmaligen Benachrichtigung bei Veröffentlichung des Kommentars genutzt.

Benachrichtigung per E-Mail über Antworten auf meinen Kommentar erhalten.

Bitte tippe die Zahlenkombination "4804" ein, nur dann kann ich deinen Kommentar entgegennehmen.

Bitte fülle dieses Feld nicht aus, nur dann kann ich deinen Kommentar entgegennehmen.