Sophie

Sophie

distrib > Mandriva > 2007.0 > x86_64 > by-pkgid > b426518e3c1977c6b981dcfdf94869d5 > scriptlet

MySQL-Max-5.0.24a-2.3mdv2007.0.x86_64.rpm

PREUN

/bin/sh
if [ -x /usr/sbin/mysqld -o -x /etc/rc.d/init.d/mysqld ]; then
    chkconfig --del mysqld
else
    /usr/share/rpm-helper/del-service MySQL $1 mysqld-max 
fi

POSTIN

/bin/sh
# Change permissions so that the user that will run the MySQL 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

/usr/share/rpm-helper/add-service MySQL $1 mysqld-max 

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

# try to fix privileges table, use a no password user table for that
fix_privileges() 
{
    datadir=`my_print_defaults --defaults-file=/etc/my.cnf mysqld | grep '^--datadir=' | cut -d= -f2`
    if [ -z $datadir ]; then
        datadir=/var/lib/mysql/
    fi
    cd $datadir/mysql
    pid_file=$datadir/mysqld-max-fix_privileges.pid
    if [ -f $pid_file ]; then rm -f $pid_file; fi
    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-max-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
}

# Shut down a previously installed server first
manager_pid=`my_print_defaults --defaults-file=/etc/my.cnf manager | grep '^--pid-file=' | cut -d= -f2`
mysql_pid=`my_print_defaults --defaults-file=/etc/my.cnf mysqld | grep '^--pid-file=' | cut -d= -f2`

if [ -f /var/lock/subsys/mysqlmanager -o -f /var/lock/subsys/mysqld -o -f /var/lock/subsys/mysqld-max -o -f "$manager_pid" -o -f "$mysql_pid" ]; then
    if [ -x /usr/sbin/mysqld -o -x /etc/rc.d/init.d/mysqld ]; then
	/etc/rc.d/init.d/mysqld stop && fix_privileges && /etc/rc.d/init.d/mysqld-max start
    else
	/etc/rc.d/init.d/mysqld-max stop && fix_privileges && /etc/rc.d/init.d/mysqld-max start
    fi
else
	fix_privileges
fi

POSTUN

/bin/sh
if [ "$1" = "0" ]; then
    if [ -f /var/lock/subsys/mysqld-max ]; then
        /etc/rc.d/init.d/mysqld-max restart 1>&2
    fi
fi

Triggers

MySQL-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