ubuntuusers.de

error: error running shared postrotate script for /var/log/mysql.log

Status: Ungelöst | Ubuntu-Version: Server 16.04 (Xenial Xerus)
Antworten |

Pfaelzerchen

Anmeldungsdatum:
25. Juni 2006

Beiträge: Zähle...

Wohnort: Trier

Ich habe seit einiger Zeit ein Problem mit der Logrotation des MySQL-Servers. Jeden Tag erhalte ich eine Email:

Betreff: Cron <root@core> 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/*log '

run-parts: /etc/cron.daily/logrotate exited with return code 1

Im Internet gibt es dazu sehr viele Treffer, die darauf hinweisen, dass das Passwort des debian-sys-maint Users unter MySQL stimmen muss. Ich habe die entsprechenden Hinweise geprüft und sicherheitshalber auch das Passwort entsprechend /etc/mysql/debian.cnf nochmal neu gesetzt. Das war allerdings wirkungslos.

Ich kann mich mit den Zugangsdaten als debian-sys-maint mittels mysql anmelden und dort auch "FLUSH LOGS;" fehlerfrei ausführen.

Auch ein

sudo /usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf" flush-logs

funktioniert ohne Fehler. Trotzdem erhalte ich täglich obige Fehlermeldung.

sudo sudo /usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf" ping

liefert ebenfalls ein "mysqld is alive".

Hat noch jemand einen Rat für mich?

sebix Team-Icon

Ehemalige

Anmeldungsdatum:
14. April 2009

Beiträge: 5582

Wie ist denn das postrotate-commando definiert? Die logrotate config fuer MySQL findest du wahrscheinlich unter /etc/logrotate.d/mysql

Pfaelzerchen

(Themenstarter)

Anmeldungsdatum:
25. Juni 2006

Beiträge: 8

Wohnort: Trier

Die Definition stammt noch Original aus dem Paket und sieht wie folgt aus:

        postrotate
                test -x /usr/bin/mysqladmin || exit 0
                # If this fails, check debian.conf! 
                MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
                if [ -z "`$MYADMIN ping 2>/dev/null`" ]; then
                  # Really no mysqld or rather a missing debian-sys-maint user?
                  # If this occurs and is not a error please report a bug.
                  #if ps cax | grep -q mysqld; then
                  if killall -q -s0 -umysql mysqld; then
                    exit 1
                  fi
                else
                  $MYADMIN flush-logs
                fi
        endscript

Pfaelzerchen

(Themenstarter)

Anmeldungsdatum:
25. Juni 2006

Beiträge: 8

Wohnort: Trier

Ich bin noch auf ein anderes Phänomen gestoßen als ich eine Konfigurationsdatei für mysql anlegen wollte, um Kommandos aus einem Shellskript automatisiert schicken zu können:

> sudo mysqladmin --defaults-file=/etc/mysql/debian.cnf ping
mysqld is alive

> sudo su
> mysqladmin --defaults-file=/etc/mysql/debian.cnf ping
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'

Vermutlich bricht deshalb auch das logrotate-Skript ab.

Pfaelzerchen

(Themenstarter)

Anmeldungsdatum:
25. Juni 2006

Beiträge: 8

Wohnort: Trier

Ich glaube, die Lösung gerade gefunden zu haben. Da lag noch eine Testdatei .mylogin.cnf im root-Userverzeichnis, die aber nie funktioniert hatte. Die hat im Anschluss die Anmeldeinformationen aus dem defaults-file überladen:

> mysqladmin --defaults-file=/etc/mysql/debian.cnf --print-defaults ping
mysqladmin would have been started with the following arguments:
--host=localhost --user=debian-sys-maint --password=***** --socket=/var/run/mysqld/mysqld.sock --user=root --password=***** ping

Nach dem Entfernen funktioniert der manuelle Start wieder. Mal schauen, ob ich morgen wieder eine Email erhalte.

Antworten |