--- mysql-dfsg-4.0.20.orig/debian/additions/debian-start +++ mysql-dfsg-4.0.20/debian/additions/debian-start @@ -0,0 +1,29 @@ +#!/bin/sh +# +# This script is executed by "/etc/init.d/mysql" on every (re)start. +# +# Changes to this file will be preserved when updating the Debian package. +# +set -e +set -u + +MYCHECK="/usr/bin/mysqlcheck --defaults-extra-file=/etc/mysql/debian.cnf" +MYCHECK_SUBJECT="WARNING: mysqlcheck has found corrupt tables" + +# Now, as the server seems to be up, check all unclosed tables. +# But do it in the background to not stall the boot process. +echo "Checking for crashed MySQL tables in the background." +( + logger -p daemon.info -i -t$0 "Checking for crashed MySQL tables." + + # Checking for $? is unreliable so the size of the output is checked. + tempfile=`tempfile` + $MYCHECK --all-databases --fast --silent >$tempfile 2>&1 + if [ -s $tempfile ]; then + cat $tempfile | mailx -e -s"$MYCHECK_SUBJECT" root + (echo "$MYCHECK_SUBJECT"; cat $tempfile) | logger -p daemon.warn -i -t$0 + fi + rm $tempfile +) + +exit 0