it-swarm.com.de

MySQL-Logrotate-Fehler

Ich bin neu in Linux und habe einen VPS eingerichtet, auf dem Ubuntu 16.04 mit Postfix, Dovecot und Rouncube unter Verwendung von Mariadb für die Datenbank ausgeführt wird. Alles scheint in Ordnung zu sein, aber ich erhalte regelmäßig die folgende E-Mail:

/etc/cron.daily/logrotate:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
error: error running shared postrotate script for '/var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log /var/log/mysql/mariadb-slow.log /var/log/mysql/error.log '
run-parts: /etc/cron.daily/logrotate exited with return code 1

Ich habe einige Suchen durchgeführt und einen Beitrag gefunden, der vorschlägt, dass ich eine /root/.my.cnf -Datei erstellen muss, die ich durchgeführt habe und seitdem den Server usw. neu gestartet habe, aber ich erhalte immer noch den Fehler. Die Inhalte meiner /root/.my.cnf lauten wie folgt:

[mysqladmin]
password = *mypassword*
user = root

[mysql]
password = *mypassword*

Weiß jemand, ob ich etwas vermisse oder etwas anderes, das ich konfigurieren muss, um das mysql-Passwort zu verwenden?

Vielen Dank

4
Adam D

Dies könnte ein Fehler in der Standardkonfiguration sein, wenn Mariadb im Gegensatz zu MySQL verwendet wird, das noch nicht entfernt wurde.

Sie sollten in /etc/logrotate.d/mysql-server nachsehen, was bei der Nachdrehung läuft. Sie werden wahrscheinlich so etwas haben:

test -x /usr/bin/mysqladmin || exit 0
if [ -f `my_print_defaults --mysqld | grep -oP "pid-file=\K[^$]+"` ]; then
    # If this fails, check debian.conf!
    mysqladmin --defaults-file=/etc/mysql/debian.cnf flush-logs
fi

Ubuntu sucht wahrscheinlich dort, also versuchen Sie, einen Blick in /etc/mysql/debian.cnf zu werfen und zu sehen, was eingestellt ist.

5
AvatarKava

AvatarKava weist uns in die richtige Richtung und seine Antwort wird für die meisten Menschen funktionieren. Wenn Sie sich immer noch am Kopf kratzen, nachdem Sie der Datei /etc/mysql/debian.cnf einen Benutzer und ein Kennwort hinzugefügt haben (obwohl darauf hingewiesen wird, dass diese Datei nicht berührt werden soll, haha!), Gehen Sie wie folgt vor:

stellen Sie sicher, dass Ihr Passwort in Anführungszeichen steht

vor allem, wenn Ihr Passwort Sonderzeichen enthält.

Ein weiterer Hack besteht darin, die Option --defaults-file=/etc/mysql/debian.cnf aus dem Befehl mysqladmin in /etc/logrotate.d/mysql-server zu entfernen. Wenn Sie diese Option entfernen, benötigt der Root-Benutzer (der Benutzer, der logrotate ausführt) weiterhin einen gültigen Benutzer und ein gültiges Kennwort, um eine Verbindung zu mysql herzustellen. Stellen Sie daher sicher, dass Sie eine richtige .my.cnf-Datei in/root haben. In beiden Fällen könnten die Änderungen an debian.cnf oder mysql-server beim nächsten MariaDB-Upgrade überschrieben werden. Wie AvatarKava jedoch ausführt, werden Sie wahrscheinlich vor dem Upgrade dazu aufgefordert, diese Dateien zu überschreiben. Im schlimmsten Fall erhalten Sie nach dem Upgrade erneut logrotate-Fehler und müssen dieselben Änderungen erneut vornehmen.

1
mcmacerson