[debian-mysql] Bug#512040: conditional (re-)start of mysqld in postinst script
Raoul Bhatia [IPAX]
r.bhatia at ipax.at
Fri Jan 16 17:09:59 UTC 2009
Package: mysql-server-5.0
Version: 5.0.51a-21
Installing/upgrading the package follows this steps:
1) preinst will stop the server
2) upgrade takes place
3) postinst will start the server
unfortunatly, in a more complex environment where one does not rely on
/etc/mysql/* for configuration (e.g. in an linux-ha/pacemaker
environment), the start is likely to fail thus leaving the package - and
thus the whole package system - in the "Failed-cfg"-state:
> Setting up mysql-client-5.0 (5.0.51a-19~bpo40+1) ...
> Setting up mysql-server-5.0 (5.0.51a-19~bpo40+1) ...
> Installing new version of config file /etc/init.d/mysql-ndb-mgm ...
> Installing new version of config file /etc/init.d/mysql-ndb ...
> Installing new version of config file /etc/init.d/mysql ...
> Installing new version of config file /etc/logrotate.d/mysql-server ...
> Installing new version of config file /etc/mysql/debian-start ...
> Stopping MySQL database server: mysqld.
> Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!
> invoke-rc.d: initscript mysql, action "start" failed.
> dpkg: error processing mysql-server-5.0 (--configure):
> subprocess post-installation script returned error exit status 1
> Errors were encountered while processing:
> mysql-server-5.0
> E: Sub-process /usr/bin/dpkg returned an error code (1)
> # dpkg -l mysql-server-5.0
> Desired=Unknown/Install/Remove/Purge/Hold
> | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
> |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
> ||/ Name Version
> +++-===================-====================-================================
> iF mysql-server-5.0 5.0.51a-19~bpo40+1 MySQL database server binaries
Now, we're unable to install/upgrade any other package properly, as
postinst will *always* try to start the server.
The only workaround i found until now is using "chmod -x /etc/init.d/mysql".
Is it possible to make the mysqld start optional - e.g. preinst checks
if mysqld is/was running and "tell" postinst what to (not) start?
Or maybe it is possilbe to continue even if the mysqld start fails?
cheers,
raoul
More information about the pkg-mysql-maint
mailing list