# logrotate Problem MySQL nach Update auf 3.0.4.5



## shen (4. Juni 2012)

Hallo zusammen,

nachdem wir ein Update auf Version 3.0.4.5 gemacht haben, gibt es folgendes Problem, welches wir nicht gelöst bekommen:



> Cron <root@XXXXXX> test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) (failed)
> 
> /etc/cron.daily/logrotate:
> /usr/bin/mysqladmin: refresh failed; error: 'Access denied; you need the RELOAD privilege for this operation'
> 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


Hat da jemand eine Idee zu?

Danke + Gruß
Stefan


----------



## Till (4. Juni 2012)

Mit dem ISPConfig Update kann das nichts zu tun haben, da ispconfig weder logrotate noch die mysql root bzw. system meintenance Logins konfugriert.

Da muss enteweder jemand das Passwort oder die privilegien des system meintenamnce mysql Users geändert haben. Weche linux Distribution verwendest Du denn?


----------



## shen (4. Juni 2012)

Es läuft Debian 6.0.5


----------



## Till (4. Juni 2012)

Dann ist vermutlich das debian sys-maint Passwort falsch. Schau mal in die Datei /etc/mysql/debian.cnf, dort steht das passwort für den debian-sys-maint User im Klartext drin, versuch Dich mal mit:

mysql -h localhost -u debian-sys-maint -p

und dem Passwort aus der datei in mysql einzuloggen. Wenn das nicht geht, dann setze das passwort für den user in mysql neu oder passe s alternativ in der .cnf Datei an.


----------



## shen (4. Juni 2012)

Ich kann mich mit dem Passwort aus der /etc/mysql/debian.cnf anmelden. Die Datei wurde auch lange nicht geändert.

In der Tabelle "user" der DB "mysql" ist der Hash-Wert für das Passwort korrekt, den habe ich gerade nochmal mit *SELECT PASSWORD();* verifiziert, siehe Anhänge. Auch in einem älteren Backup der DB ist der Hashwert identisch.

Gruß
Stefan


----------



## Till (4. Juni 2012)

Dann schau mal in /etc/cron.daily/logrotate rein was er da genau macht und sieh auch in mysql nach ober der User den logrotate verwendet auch ein refresh durchführen darf.


----------



## shen (4. Juni 2012)

/etc/cron.daily/logrotate:



> #!/bin/sh
> 
> test -x /usr/sbin/logrotate || exit 0
> /usr/sbin/logrotate /etc/logrotate.conf


/etc/logrotate.conf:



> # see "man logrotate" for details
> # rotate log files weekly
> weekly
> 
> ...


/etc/logrotate.d/mysql-server:


> # - I put everything in one block and added sharedscripts, so that mysql gets
> #   flush-logs'd only once.
> #   Else the binary logs would automatically increase by n times every day.
> # - The error log is obsolete, messages go to syslog now.
> ...


In der /etc/mysql/debian.cnf steht das korrekte Passwort, hier ausgeXt:



> # Automatically generated for Debian scripts. DO NOT TOUCH!
> [client]
> host     = localhost
> user     = debian-sys-maint
> ...


Und im Anhang noch die Rechte des users debian-sys-maint, ich nehme an, das ist, was Du meinst ... es sind hier nur "select, insert, update und delete" aktiviert.


----------



## Till (4. Juni 2012)

Das Problem sind die Rechte des debian-sys-maint Users in mysql, es müssen dort alle Rechte aktiviert sein.


----------



## shen (4. Juni 2012)

Hm, seltsam, wie kann er die Rechte verloren haben?

Nun hat er jedenfalls wieder ALL PRIVILEGES - dann sollte beim nächsten Lauf ja alles ok sein.

Vielen Dank für die Hilfe!

Gruß
Stefan


----------

