Sophie

Sophie

distrib > Mandriva > 2007.0 > i586 > media > contrib-release > by-pkgid > 4864383d207fcfbfe878016c5435ec1d > scriptlet

MySQL41-Max-4.1.19-1mdv2007.0.i586.rpm

PREUN

/bin/sh
/usr/share/rpm-helper/del-service MySQL41 $1 mysqld-max

POSTIN

/bin/sh
# Change permissions so that the user that will run the MySQL41 daemon
# owns all database files.
chown -R mysql:mysql /var/lib/mysql

# make sure the /var/lib/mysql directory can be accessed
chmod 711 /var/lib/mysql

# Initiate databases
export TMPDIR="/var/lib/mysql/.tmp"
export TMP="${TMPDIR}"
su - mysql -c "mysql_install_db --rpm --user=mysql" > /dev/null

# Change permissions again to fix any new files.
chown -R mysql:mysql /var/lib/mysql

# Fix permissions for the permission database so that only the user
# can read them.
chmod -R og-rw /var/lib/mysql

/usr/share/rpm-helper/add-service MySQL41 $1 mysqld-max 
# Allow mysqld_safe to start mysqld and print a message before we exit
sleep 2

# try to fix privileges table, use a no password user table for that
fix_privileges() 
{
    datadir=`my_print_defaults mysqld | grep '^--datadir=' | cut -d= -f2`
    if [ -z $datadir ]; then
        datadir=/var/lib/mysql/
    fi
    cd $datadir/mysql
    pid_file=$datadir/mysqld-fix_privileges.pid
    if /usr/bin/mysqld_safe --skip-grant-tables --skip-networking --pid-file=$pid_file &> /dev/null & then  
        pid=$!
        i=1
        while [ $i -lt 10 -a ! -f $pid_file ]; do 
            i=$(($i+1))
            sleep 1
        done
        if [ -f $datadir/mysqld-fix_privileges.pid ]; then
            /usr/bin/mysql_fix_privilege_tables &> /dev/null 
            kill `cat $pid_file` &> /dev/null
            rm -f $pid_file
        else 
            # just in case
            kill $pid &> /dev/null
        fi
        sleep 2
    fi
}

if [ -f /var/lock/subsys/mysqld-max ]; then
    /sbin/service mysqld-max stop &> /dev/null
    fix_privileges
    /sbin/service mysqld-max start &> /dev/null 
else
    fix_privileges
fi

Triggers

MySQL41-Max < 4.1.10

/bin/sh
if [ -f /var/lock/subsys/mysql-max ]; then
    pidname="/var/lib/mysql/`/bin/hostname`.pid"
    if [ -f ${pidname} ]; then
	kill `cat ${pidname}`
	/etc/rc.d/init.d/mysqld-max start
    fi
fi