Discussion:
Logrotate failure
Tony van der Hoff
2015-07-06 17:16:37 UTC
Permalink
Since installing Jessie from scratch on this laptop, I'm getting a
nightly error message from logrotate:

/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
/var/log/mysql/error.log '
run-parts: /etc/cron.daily/logrotate exited with return code 1

/etc/logrotate.d/mysql-server is unchanged from the packaged version:

# - 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.
/var/log/mysql.log /var/log/mysql/mysql.log
/var/log/mysql/mysql-slow.log /var/log/mysql/error.log {
daily
rotate 7
missingok
create 640 mysql adm
compress
sharedscripts
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
exit 1
fi
else
$MYADMIN flush-logs
fi
endscript
}

I actually installed mariadb, not mysql, not sure whether that matters.

Any suggestions as to what's wrong, please?
--
Tony van der Hoff | mailto:***@vanderhoff.org
Buckinghamshire, England |
--
To UNSUBSCRIBE, email to debian-user-***@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact ***@lists.debian.org
Archive: https://lists.debian.org/***@vanderhoff.org
Darac Marjal
2015-07-07 08:24:05 UTC
Permalink
Post by Tony van der Hoff
Since installing Jessie from scratch on this laptop, I'm getting a
error: error running shared postrotate script for '/var/log/mysql.log
/var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log
/var/log/mysql/error.log '
run-parts: /etc/cron.daily/logrotate exited with return code 1
# - 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.
/var/log/mysql.log /var/log/mysql/mysql.log
/var/log/mysql/mysql-slow.log /var/log/mysql/error.log {
daily
rotate 7
missingok
create 640 mysql adm
compress
sharedscripts
postrotate
test -x /usr/bin/mysqladmin || exit 0
The error code was 1 so, unless your system is pathologically broken,
/usr/bin/mysqladmin exists and is executable.
Post by Tony van der Hoff
# If this fails, check debian.conf!
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
So therefore, this line should work fine. (Though, as the comment says,
check that file)
Post by Tony van der Hoff
if [ -z "`$MYADMIN ping 2>/dev/null`" ]; then
This pings mysql, if there's no response, then the following lines
happen.
Post by Tony van der Hoff
# 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
exit 1
This looks likely to be where your error has come from. AIUI, you'll get
to this line if mysqladmin CAN'T ping your server AND there is a mysqld
process. There are a number of reasons for this, but I suspect the main
one is a mis-configured /etc/mysql/debian.cnf
Post by Tony van der Hoff
fi
else
$MYADMIN flush-logs
fi
endscript
}
I actually installed mariadb, not mysql, not sure whether that matters.
If the process names are the same, the above script should still work.
Post by Tony van der Hoff
Any suggestions as to what's wrong, please?
--
Buckinghamshire, England |
--
--
For more information, please reread.
Tony van der Hoff
2015-07-07 11:37:48 UTC
Permalink
Post by Darac Marjal
Post by Tony van der Hoff
Since installing Jessie from scratch on this laptop, I'm getting a
if [ -z "`$MYADMIN ping 2>/dev/null`" ]; then
This pings mysql, if there's no response, then the following lines
happen.
Post by Tony van der Hoff
# 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
exit 1
This looks likely to be where your error has come from. AIUI, you'll get
to this line if mysqladmin CAN'T ping your server AND there is a mysqld
process. There are a number of reasons for this, but I suspect the main
one is a mis-configured /etc/mysql/debian.cnf
Post by Tony van der Hoff
fi
else
$MYADMIN flush-logs
fi
endscript
}
Thanks for your help, Darac. Your comments helped me get to the bottom
of this.

Although I installed Jessie (with Mariadb) from scratch, I retained my
old SQL tables (of course), including the mysql passwords. This meant
that the (new) debian-sys-maint password in debian.cnf did not match the
password in the database.

I corrected the password in debian.cnf, and all seems well now.

Thanks again, Tony
--
Tony van der Hoff | mailto:***@vanderhoff.org
Buckinghamshire, England |
--
To UNSUBSCRIBE, email to debian-user-***@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact ***@lists.debian.org
Archive: https://lists.debian.org/***@vanderhoff.org
Loading...