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.
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!