#!/bin/bash # $0 -- Convert all local MySQL DB to the MySQL 4.1 format # Copyright (C) 2005 Davide Madrisan # see: http://dev.mysql.com/doc/mysql/en/upgrading-from-4-0.html [ $UID = 0 ] || { echo "error: ${0##*/}: must be superuser" >&2; exit 1; } # dump all local MySQL DB to a temporary file tempf=`mktemp -t allMySQLdb.XXXXXX` || { echo "cannot create secure temporary files." >&2; exit 1; } trap 'rm -f $tempf' 0 1 2 3 6 7 13 15 [ -f /var/lock/subsys/mysql ] && let "mysql_is_running = 1" || let "mysql_is_running = 0" [ "$mysql_is_running" = "1" ] || { service mysql start; sleep 3; } echo "dumping all MySQL DB to $tempf..." mysqldump --all-databases --result-file=$tempf >/dev/null service mysql stop sleep 3 # create a backup copy of all mysql DB echo "creating a backup copy of all the DB in $bckdir..." bckdir=`mktemp -d /var/lib/mysql.XXXXXX` || { echo "cannot create a backup copy of local MySQL db." >&2; exit 1; } mv /var/lib/mysql/ $bckdir echo "creating a new MySQL DB and change permissions..." install -d -m755 -o mysql -g mysql /var/lib/mysql/ mysql_install_db -b /usr --ldata=/var/lib/mysql /bin/chown -R mysql.mysql /var/lib/mysql/* service mysql start sleep 3 echo "restoring the dumped MySQL DB $tempf..." mysql < $tempf #mysql_fix_privilege_tables rm -f $tempf [ "$mysql_is_running" = "1" ] || service mysql stop