error: error running shared postrotate script for /var/log/mysql.log
unter Online ▸ Stichwort Databases / Basic Knowledge
Geschätzte Lesezeit: 1 Minute
Nach Aufsetzen eines mySQL-Servers unter Debian bekam ich einige Nächte in Folge diese Mail:
Subject: Cron test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
/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
Das Problem liegt darin begründet, dass es den benötigten User nicht gibt. Informationen zu diesem User sind in /etc/mysql/debian.cnf
zu finden; bei mir sieht das etwa so aus:
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password = <$PASSWORT>
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
user = debian-sys-maint
password = <$PASSWORT>
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
Den hier genannten User debian-sys-maint
brauchen wir – innerhalb MySQL. Das geht aber ganz schnell und unkompliziert; <$PASSWORT> entspricht natürlich dem String, der an dieser Stelle bei euch steht:
$ mysql -u root -p
Enter password:
mysql> create user 'debian-sys-maint'@'localhost'
-> identified by '<$PASSWORT>';
Aber der nun erstellte User braucht aber auch Rechte auf die Datenbanken; wer das fein aufteilen möchte, kann dies gerne tun ;) Ich habe folgendermaßen beholfen.
mysql> grant all privileges on \*.\*
-> to 'debian-sys-maint'@'localhost'
-> identified by '<$PASSWORT>';
Anschließend nicht vergessen:
mysql> flush privileges;
Alle Bilder dieser Seite: © Marianne Spiller – Alle Rechte vorbehalten
Hintergrundbild: Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten
Hintergrundbild: Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten