Package: mysql-server-core-5.1
Version: 5.1.49-3
Severity: normal
Hi, today I made an aptitude full-upgrade with no warnings on a different
machine
which had the mysql failure message problem.
I do not explicitly use mysql on this machine, only automatic stuff is
installed,
nameley mysql-server-core-5.1 but not mysql-server-5.1.
The upgrade reported no warnings about mysql, but the file /etc/init.d/mysql
has not been upgraded.
Nonetheless to say I do not remember having modified the init.d/mysql file.
(I attach a copy of the current one.)
.... so exactly the same problem on a second machine. (More on this later, from
my third machine.)
regards, ric
------------------------ INFO
-------------------------------------------------------------------
majorana:~# cat /var/log/apt/term.log|egrep -i -C1 'mysql'
Unpacking replacement libqt4-help ...
Preparing to replace mysql-common 5.1.49-1 (using
.../mysql-common_5.1.49-3_all.deb) ...
Unpacking replacement mysql-common ...
Preparing to replace libmysqlclient16 5.1.49-1 (using
.../libmysqlclient16_5.1.49-3_i386.deb) ...
Unpacking replacement libmysqlclient16 ...
Preparing to replace libqt4-sql-mysql 4:4.6.3-1+b1 (using
.../libqt4-sql-mysql_4%3a4.6.3-4_i386.deb) ...
Unpacking replacement libqt4-sql-mysql ...
Preparing to replace libqt4-sql-sqlite 4:4.6.3-1+b1 (using
.../libqt4-sql-sqlite_4%3a4.6.3-4_i386.deb) ...
--
Unpacking replacement modemmanager ...
Preparing to replace mysql-server-core-5.1 5.1.49-1 (using
.../mysql-server-core-5.1_5.1.49-3_i386.deb) ...
Unpacking replacement mysql-server-core-5.1 ...
Preparing to replace wpasupplicant 0.6.10-2 (using
.../wpasupplicant_0.6.10-2.1_i386.deb) ...
--
Setting up libqt4-help (4:4.6.3-4) ...
Setting up mysql-common (5.1.49-3) ...
Setting up libmysqlclient16 (5.1.49-3) ...
Setting up libqt4-sql-mysql (4:4.6.3-4) ...
Setting up libqt4-sql-sqlite (4:4.6.3-4) ...
--
Setting up modemmanager (0.4+git.20100624t180933.6e79d15-2) ...
Setting up mysql-server-core-5.1 (5.1.49-3) ...
Setting up wpasupplicant (0.6.10-2.1) ...
majorana:~# ls /etc/init.d/mysql.dpkg-dist
ls: cannot access /etc/init.d/mysql.dpkg-dist: No such file or directory
majorana:~# head -n 25 /etc/init.d/mysql|cat -n
1 #!/bin/bash
2 #
3 ### BEGIN INIT INFO
4 # Provides: mysql
5 # Required-Start: $remote_fs $syslog
6 # Required-Stop: $remote_fs $syslog
7 # Should-Start: $network $named $time
8 # Should-Stop: $network $named $time
9 # Default-Start: 2 3 4 5
10 # Default-Stop: 0 1 6
11 # Short-Description: Start and stop the mysql database server daemon
12 # Description: Controls the main MySQL database server daemon
"mysqld"
13 # and its wrapper script "mysqld_safe".
14 ### END INIT INFO
15 #
16 set -e
17 set -u
18 ${DEBIAN_SCRIPT_DEBUG:+ set -v -x}
19
20 test -x /usr/sbin/mysqld || exit 0
21
22 . /lib/lsb/init-functions
23
24 SELF=$(cd $(dirname $0); pwd -P)/$(basename $0)
25 CONF=/etc/mysql/my.cnf
majorana:~# cat /var/log/daemon.log|egrep -i mysql
Jan 9 17:24:09 majorana /etc/init.d/mysql[1718]: 0 processes alive and
'/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
Jan 9 17:24:09 majorana /etc/init.d/mysql[1718]: /etc/init.d/mysql: line 75:
/usr/bin/mysqladmin: No such file or directory
Jan 9 17:24:09 majorana /etc/init.d/mysql[1718]:
Jan 15 09:50:50 majorana /etc/init.d/mysql[1725]: 0 processes alive and
'/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
Jan 15 09:50:50 majorana /etc/init.d/mysql[1725]: /etc/init.d/mysql: line 75:
/usr/bin/mysqladmin: No such file or directory
Jan 15 09:50:50 majorana /etc/init.d/mysql[1725]:
Jan 15 11:54:56 majorana /etc/init.d/mysql[1825]: 0 processes alive and
'/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
Jan 15 11:54:56 majorana /etc/init.d/mysql[1825]: /etc/init.d/mysql: line 75:
/usr/bin/mysqladmin: No such file or directory
Jan 15 11:54:56 majorana /etc/init.d/mysql[1825]:
Jan 15 11:56:13 majorana /etc/init.d/mysql[1679]: 0 processes alive and
'/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
Jan 15 11:56:13 majorana /etc/init.d/mysql[1679]: /etc/init.d/mysql: line 75:
/usr/bin/mysqladmin: No such file or directory
Jan 15 11:56:13 majorana /etc/init.d/mysql[1679]:
majorana:~# aptitude search mysql-server
p mysql-server - MySQL database server
(metapackage depending on the latest ve
v mysql-server-5.0 -
c mysql-server-5.1 - MySQL database server
binaries and system database setup
v mysql-server-core -
v mysql-server-core-5.0 -
i A mysql-server-core-5.1 - MySQL database server
binaries
v virtual-mysql-server -
majorana:~#
-- System Information:
Debian Release: 6.0
APT prefers testing
APT policy: (900, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.6.32-5-686 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages mysql-server-core-5.1 depends on:
ii libc6 2.11.2-7 Embedded GNU C Library: Shared lib
ii libgcc1 1:4.4.5-8 GCC support library
ii libstdc++6 4.4.5-8 The GNU Standard C++ Library v3
ii libwrap0 7.6.q-19 Wietse Venema's TCP wrappers libra
ii zlib1g 1:1.2.3.4.dfsg-3 compression library - runtime
mysql-server-core-5.1 recommends no packages.
mysql-server-core-5.1 suggests no packages.
-- no debconf information
#!/bin/bash
#
### BEGIN INIT INFO
# Provides: mysql
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Should-Start: $network $named $time
# Should-Stop: $network $named $time
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start and stop the mysql database server daemon
# Description: Controls the main MySQL database server daemon "mysqld"
# and its wrapper script "mysqld_safe".
### END INIT INFO
#
set -e
set -u
${DEBIAN_SCRIPT_DEBUG:+ set -v -x}
test -x /usr/sbin/mysqld || exit 0
.. /lib/lsb/init-functions
SELF=$(cd $(dirname $0); pwd -P)/$(basename $0)
CONF=/etc/mysql/my.cnf
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
# priority can be overriden and "-s" adds output to stderr
ERR_LOGGER="logger -p daemon.err -t /etc/init.d/mysql -i"
# Safeguard (relative paths, core dumps..)
cd /
umask 077
# mysqladmin likes to read /root/.my.cnf. This is usually not what I want
# as many admins e.g. only store a password without a username there and
# so break my scripts.
export HOME=/etc/mysql/
## Fetch a particular option from mysql's invocation.
#
# Usage: void mysqld_get_param option
mysqld_get_param() {
/usr/sbin/mysqld --print-defaults \
| tr " " "\n" \
| grep -- "--$1" \
| tail -n 1 \
| cut -d= -f2
}
## Do some sanity checks before even trying to start mysqld.
sanity_checks() {
# check for config file
if [ ! -r /etc/mysql/my.cnf ]; then
log_warning_msg "$0: WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz"
echo "WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz" | $ERR_LOGGER
fi
# check for diskspace shortage
datadir=`mysqld_get_param datadir`
if LC_ALL=C BLOCKSIZE= df --portability $datadir/. | tail -n 1 | awk '{ exit ($4>4096) }'; then
log_failure_msg "$0: ERROR: The partition with $datadir is too full!"
echo "ERROR: The partition with $datadir is too full!" | $ERR_LOGGER
exit 1
fi
}
## Checks if there is a server running and if so if it is accessible.
#
# check_alive insists on a pingable server
# check_dead also fails if there is a lost mysqld in the process list
#
# Usage: boolean mysqld_status [check_alive|check_dead] [warn|nowarn]
mysqld_status () {
ping_output=`$MYADMIN ping 2>&1`; ping_alive=$(( ! $? ))
ps_alive=0
pidfile=`mysqld_get_param pid-file`
if [ -f "$pidfile" ] && ps `cat $pidfile` >/dev/null 2>&1; then ps_alive=1; fi
if [ "$1" = "check_alive" -a $ping_alive = 1 ] ||
[ "$1" = "check_dead" -a $ping_alive = 0 -a $ps_alive = 0 ]; then
return 0 # EXIT_SUCCESS
else
if [ "$2" = "warn" ]; then
echo -e "$ps_alive processes alive and '$MYADMIN ping' resulted in\n$ping_output\n" | $ERR_LOGGER -p daemon.debug
fi
return 1 # EXIT_FAILURE
fi
}
#
# main()
#
case "${1:-''}" in
'start')
sanity_checks;
# Start daemon
log_daemon_msg "Starting MySQL database server" "mysqld"
if mysqld_status check_alive nowarn; then
log_progress_msg "already running"
log_end_msg 0
else
# Could be removed during boot
test -e /var/run/mysqld || install -m 755 -o mysql -g root -d /var/run/mysqld
# Start MySQL!
/usr/bin/mysqld_safe > /dev/null 2>&1 &
# 6s was reported in #352070 to be too few when using ndbcluster
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14; do
sleep 1
if mysqld_status check_alive nowarn ; then break; fi
log_progress_msg "."
done
if mysqld_status check_alive warn; then
log_end_msg 0
# Now start mysqlcheck or whatever the admin wants.
output=$(/etc/mysql/debian-start)
[ -n "$output" ] && log_action_msg "$output"
else
log_end_msg 1
log_failure_msg "Please take a look at the syslog"
fi
fi
;;
'stop')
# * As a passwordless mysqladmin (e.g. via ~/.my.cnf) must be possible
# at least for cron, we can rely on it here, too. (although we have
# to specify it explicit as e.g. sudo environments points to the normal
# users home and not /root)
log_daemon_msg "Stopping MySQL database server" "mysqld"
if ! mysqld_status check_dead nowarn; then
set +e
shutdown_out=`$MYADMIN shutdown 2>&1`; r=$?
set -e
if [ "$r" -ne 0 ]; then
log_end_msg 1
[ "$VERBOSE" != "no" ] && log_failure_msg "Error: $shutdown_out"
log_daemon_msg "Killing MySQL database server by signal" "mysqld"
killall -15 mysqld
server_down=
for i in 1 2 3 4 5 6 7 8 9 10; do
sleep 1
if mysqld_status check_dead nowarn; then server_down=1; break; fi
done
if test -z "$server_down"; then killall -9 mysqld; fi
fi
fi
if ! mysqld_status check_dead warn; then
log_end_msg 1
log_failure_msg "Please stop MySQL manually and read /usr/share/doc/mysql-server-5.1/README.Debian.gz!"
exit -1
else
log_end_msg 0
fi
;;
'restart')
set +e; $SELF stop; set -e
$SELF start
;;
'reload'|'force-reload')
log_daemon_msg "Reloading MySQL database server" "mysqld"
$MYADMIN reload
log_end_msg 0
;;
'status')
if mysqld_status check_alive nowarn; then
log_action_msg "$($MYADMIN version)"
else
log_action_msg "MySQL is stopped."
exit 3
fi
;;
*)
echo "Usage: $SELF start|stop|restart|reload|force-reload|status"
exit 1
;;
esac