PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : logrotate für mysql will nicht



sutterp
12.10.02, 15:55
Hallo Linux Fans,

Ein kleines Problem für die Spezialisten, aber für mich ein grosses Fragezeichen. Die Durchführung von dem daily cronjob script produziert folgenden output:

running daily cronjob scripts

SCRIPT: clean_catman, OK.
SCRIPT: clean_core, OK.
SCRIPT: do_mandb, OK.
SCRIPT: logrotate exited with RETURNCODE = 1.
SCRIPT: ouput (stdout && stderr) follows

Reload syslog service..done
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user: 'root@localhost' (Using password: NO)'
error running postrotate script
SCRIPT: logrotate ------- END OF OUTPUT


SCRIPT: suse.de-backup-rc.config, OK.
SCRIPT: suse.de-backup-rpmdb, OK.
SCRIPT: suse.de-check-battery, OK.
SCRIPT: suse.de-clean-tmp, OK.
SCRIPT: suse.de-clean-vi, OK.
SCRIPT: suse.de-cron-local, OK.
SCRIPT: updatedb, OK.

Offensichtlich fällt das logrotate von mysql auf die Nase. In /etc/logrotate.d/mysql steht folgendes:

# This logname can be set in /etc/my.cnf
# by setting the variable "err-log"
# in the [safe_mysqld] section
#
# If the root user has a password you have to create a
# /root/.my.cnf configuration file with the following
# content:
#
# [mysqladmin]
# password = <secret>
# user= root
#
# where "<secret>" is the password.
#
# ATTENTION: This /root/.my.cnf should be readable ONLY
# for root !

Als erstes probierte ich mit
mysql -u root -p<secret> database
mich bei MySql anzumelden. Dies funktioniert auch, also ist das Passwort/Benutzername für mysql richtig gesetzt.

Nun habe ich die Datei /root/.my.cnf mit Protection 700 und als Benutzer root:root erstellt. Dies hilft aber nichts. Um zu testen obs and der Protection liegt, habe ich diese auf 777 erweiter. Hilft aber auch nichts. Es scheint so als ob diese Datei ignoriert würde.

/root hat auch protection 700, kann also nur vom Superuser gelesen werden.

Warum funktionierts nicht und wie gehts weiter? und von WEM wird /root/.my.cnf gelesen, root als Benützer von cron oder mysqld als Datenbank Benützer?

Das sollte auf SuSE V8.0 auf einem Pentium IV laufen, tut's aber im Augenblick nicht.

Vielen Dank und ein schönes Wochenende

Peter Sutter

Harry
12.10.02, 21:01
Hallo Peter,

die Datei /root/.my.cnf wird direkt vom Programm mysqladmin ausgewertet. Dieses wird wiederum vom logratate-Mechanismus aufgerufen, der durch einen root-cron initiiert wird.

Du solltest in der /root/.my.cnf die folgenden Zeilen haben:


[mysqladmin]
password = <secret>
user= root


Harry

sutterp
13.10.02, 03:06
Vielen Dank, Harry für Deine Antwort.

Ja, das hab ich ja selbst da reingeschrieben. Aber es funktionierte eben nicht wie gewünscht. In der Zwischenzeit restartete ich MySql und jetzt klappts. Es scheint dass das Anlegen der Datei ohne Restart nicht genügt.

Peter