Package MySQL-server: Скрипты

Post install

if [ -f /etc/my.cnf.rename -a ! -L /etc/my.cnf.rename -a ! -e /etc/my.cnf ]; then
	mv -fv /var/lib/mysql/my.cnf /var/lib/mysql/my.cnf.rpmnew &&
	mv -v /etc/my.cnf.rename /var/lib/mysql/my.cnf &&
	chown 0:0 /var/lib/mysql/my.cnf &&
	chmod 600 /var/lib/mysql/my.cnf ||
	{ echo "Error moving my.cnf" >&2; mv -v /etc/my.cnf.rename /etc/my.cnf; }
fi

if grep "^[[:space:]]*skip-bdb[[:space:]]*$" /var/lib/mysql/my.cnf > /dev/null 2>&1; then
	sed -i "s/^[[:space:]]*skip-bdb[[:space:]]*$/#skip-bdb/" /var/lib/mysql/my.cnf;
fi

if grep "^[[:space:]]*bdb-logdir=" /var/lib/mysql/my.cnf > /dev/null 2>&1; then
	sed -i "s/^[[:space:]]*bdb-logdir=/#bdb-logdir=/" /var/lib/mysql/my.cnf;
fi


if grep "^[[:space:]]*skip-locking[[:space:]]*$" /var/lib/mysql/my.cnf > /dev/null 2>&1; then
	sed -i "s/^[[:space:]]*skip-locking[[:space:]]*$/skip-external-locking/" /var/lib/mysql/my.cnf;
fi

rm -rf /var/lib/mysql/dev
/etc/chroot.d/mysql.all force


if [ $1 -ge 2 ]; then 
	/usr/sbin/control-restore mysqld 
else 
	for facility in mysqld; do 
		/usr/sbin/control "$facility" local 
	done 
fi 


# see also http://dev.mysql.com/doc/refman/5.5/en/upgrading.html

DATADIR=`/usr/bin/my_print_defaults mysqld |sed -ne 's/^--datadir=\(.*\)/\1/pg' |tail -1` 
[ -n "$DATADIR" ] || { echo "Failed to read configuration"; exit 1; }
if [ "$DATADIR" = / ]; then
	# Have to update configuration manually.
	sed -i 's,^datadir=/$,datadir=/db,g' /etc/my.cnf &&
		DATADIR=`/usr/bin/my_print_defaults mysqld |sed -ne 's/^--datadir=\(.*\)/\1/pg' |tail -1` ||
		{ echo "Failed to update configuration"; exit 1; }
fi

NEED_RESTART=
if [ -f "/var/lib/mysql/mysql/db.frm" -a ! -f "/var/lib/mysql$DATADIR/mysql/db.frm" ]; then
	/etc/rc.d/init.d/mysqld status &>/dev/null && /etc/rc.d/init.d/mysqld stop && NEED_RESTART=1 ||:
	(cd /var/lib/mysql
	install -d -m750 -o mysql -g adm ".$DATADIR"
	for d in `find -mindepth 1 -maxdepth 1 -type d |grep -Ev '\./(dev|etc|lib|log|tmp|db)$'`; do
		mv -i "$d" ".$DATADIR/$d"
	done)
	echo "Database root have been moved to $DATADIR"
fi

if [ -n "$NEED_RESTART" ]; then
	/etc/rc.d/init.d/mysqld start ||:
else
	/usr/sbin/post_service mysqld
fi
Post uninstall

1
2
3
if [ $1 = 0 ]; then
	rm -f /var/lib/mysql/lib/* /var/lib/mysql/var/yp/binding/*
fi
Pre install

/usr/sbin/groupadd -r -f mysql
/usr/sbin/useradd -r -g mysql -d /var/lib/mysql -s /dev/null -c "MySQL server" -n mysql >/dev/null 2>&1 ||:

if [ ! -e /var/lib/mysql/my.cnf -a -f /etc/my.cnf -a ! -L /etc/my.cnf -a ! -e /etc/my.cnf.rename ]; then
	mv -v /etc/my.cnf /etc/my.cnf.rename &&
	chown 0:0 /etc/my.cnf.rename &&
	chmod 600 /etc/my.cnf.rename ||
	{ echo "Error moving my.cnf" >&2; exit 1; }
fi


if [ $1 -ge 2 ]; then 
	/usr/sbin/control-dump mysqld 
fi 

:
Pre uninstall

/usr/sbin/preun_service mysqld