mysql-server-BASE.postrm.in 2.75 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
#!/bin/bash -e

. /usr/share/debconf/confmodule

if [ -n "$DEBIAN_SCRIPT_DEBUG" ]; then set -v -x; DEBIAN_SCRIPT_TRACE=1; fi
${DEBIAN_SCRIPT_TRACE:+ echo "#42#DEBUG# RUNNING $0 $*" 1>&2 }

MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"

# Try to stop the server in a sane way. If it does not success let the admin
# do it himself. No database directories should be removed while the server
# is running!
stop_server() {
  set +e
  if [ -x /usr/sbin/invoke-rc.d ]; then
    invoke-rc.d mysql stop
  else
    /etc/init.d/mysql stop
  fi
  errno=$?
  set -e

  if [ "$?" != 0 ]; then
    echo "Trying to stop the MySQL server resulted in exitcode $?." 1>&2
    echo "Stop it yourself and try again!" 1>&2
    exit 1
  fi
}

case "$1" in
  purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
    if [ -n "`$MYADMIN ping 2>/dev/null`" ]; then
      stop_server
      sleep 2
    fi
  ;;
  *)
    echo "postrm called with unknown argument '$1'" 1>&2
    exit 1
  ;;
esac

#
# - Do NOT purge logs or data if another mysql-sever* package is installed (#307473)
# - Remove the mysql user only after all his owned files are purged.
#   
if [ "$1" = "purge" -a ! \( -x /usr/sbin/mysqld -o -L /usr/sbin/mysqld \) ]; then
  # we remove the mysql user only after all his owned files are purged
  rm -f /var/log/mysql.{log,err}{,.0,.[1234567].gz}
  rm -rf /var/log/mysql

unknown's avatar
unknown committed
52
  db_input high mysql-server-@MYSQL_BRANDED_BASE_VERSION@/postrm_remove_databases || true
53
  db_go
unknown's avatar
unknown committed
54
  db_get mysql-server-@MYSQL_BRANDED_BASE_VERSION@/postrm_remove_databases || true
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
  if [ "$RET" = "true" ]; then
    # never remove the debian.cnf when the databases are still existing
    # else we ran into big trouble on the next install!
    rm -f /etc/mysql/conf.d/old_passwords.cnf
    rm -f /etc/mysql/debian.cnf
    rm -rf /var/lib/mysql
    rm -rf /var/run/mysqld
    userdel mysql || true
  fi

  # (normally) Automatically added by dh_installinit
  if [ "$1" = "purge" ] ; then
        update-rc.d mysql remove >/dev/null || exit 0
  fi
  # (normally) End automatically added section
fi

# (normally) Automatically added by dh_installdebconf
if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
        . /usr/share/debconf/confmodule
        db_purge
fi
# (normally) End automatically added section

# (normally) Automatically added by dh_installinit
if [ "$1" = "purge" ] ; then
        update-rc.d mysql-ndb-mgm remove >/dev/null || exit 0
fi
# (normally) End automatically added section
# (normally) Automatically added by dh_installinit
if [ "$1" = "purge" ] ; then
        update-rc.d mysql-ndb remove >/dev/null || exit 0
fi
# (normally) End automatically added section

unknown's avatar
unknown committed
90
# no DEBHELPER here, "update-rc.d remove" fails if mysql-server-@MYSQL_BRANDED_BASE_VERSION@ is installed
91 92

exit 0