Package MySQL-server: Scripts

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 


if [ $1 -ge 2 ]; then 
	/usr/sbin/control-restore mysqld-chroot 
else 
	for facility in mysqld-chroot; do 
		/usr/sbin/control "$facility" enabled 
	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

# refer to https://bugs.mysql.com/bug.php?id=95165
if [ -f "/var/lib/mysql$DATADIR/mysql_upgrade_info" ]; then
        echo "MySQL-server: /var/lib/mysql$DATADIR/mysql_upgrade_info present - changing owner to mysql:mysql"
        chown mysql:mysql /var/lib/mysql$DATADIR/mysql_upgrade_info
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 


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


echo "########################################################################"
echo "#              Attention! MySQL upgrade to 8.0.19                      #"
echo "########################################################################"
echo "#  Please beware: database format upgrade function has been moved      #"
echo "# from mysql_upgrade utility to mysqld server daemon since 8.0.16      #"
echo "#  DB upgrade attempt will be performed automatically after server     #"
echo "# package update. This can take the time, so wait patiently, please... #"
echo "#  If failure occures please refer to following manuals to recover:    #"
echo "# https://mysqlserverteam.com/mysql-8-0-16-mysql_upgrade-is-going-away #"
echo "# https://dev.mysql.com/doc/refman/8.0/en/upgrading.html               #"
echo "# https://dev.mysql.com/doc/refman/8.0/en/rebuilding-tables.html       #"
echo "########################################################################"
Pre uninstall

/usr/sbin/preun_service mysqld