#!/bin/bash #==============================================================================# # # Mir diesem Skript kann man, mit einem einzigen Kommando, # eine komplette MySQL-DBMS-Instanz restlos löschen. # #==============================================================================# # https://wiki.victorvox.net/doku.php?id=dokumentationen:datenbank-design_2025 #==============================================================================# #VERSION="v2025042900" # initiale Erstellung VERSION="v2025043000" # zfs destroy -r [pool]/[dataset] #------------------------------------------------------------------------------# #### Sicherheitsüberprüfungen # Prüfen, ob die übergebene Option leer ist. if [ x = "x${1}" ] ; then echo 'Es muß eine Portnummer für die neue MySQL-DBMS-Instanz übergeben werden!' echo " ${0} [Portnummer]" echo "zum Beispiel:" echo " ${0} 13309" echo "Abbruch" exit 1 fi # Prüfen, ob die übergebene Option eine Integer-Zahl, mit fünf Stellen, ist. I_FUENF="$(echo "${1}" | grep -E '^[0-9]{5}$')" if [ x = "x${I_FUENF}" ] ; then echo 'Bitte übergeben sie diesem Skript die gewünschte Portnummer.' echo 'Die übergebene Option muß eine Integer-Zahl, mit fünf Stellen, sein!' echo 'Abbruch' exit 1 else PORTNUMMER="${1}" fi #------------------------------------------------------------------------------# ### stoppen STATUS="$(service mysql_port@${PORTNUMMER} status | grep -F 'Active:' | grep -F running)" if [ x != "x${STATUS}" ] ; then echo "service mysql_port@${PORTNUMMER} stop" service mysql_port@${PORTNUMMER} stop sleep 2 fi STATUS="$(service mysql_port@${PORTNUMMER} status | grep -F 'Active:' | grep -F dead)" if [ x = "x${STATUS}" ] ; then echo "service mysql_port@${PORTNUMMER} stop" service mysql_port@${PORTNUMMER} stop sleep 2 fi if [ -e /var/lib/mysql/port_${PORTNUMMER}/datadir/mysqld.pid ] ; then MY_PID_01="$(cat /var/lib/mysql/port_${PORTNUMMER}/datadir/mysqld.pid)" if [ x != "x${MY_PID_01}" ] ; then echo "kill -9 ${MY_PID_01}" kill -9 ${MY_PID_01} sleep 2 fi fi MY_PID_02="$(ps alxwww | grep -Fv grep | grep -F mysqld | grep -F /var/lib/mysql/port_${PORTNUMMER}/etc/my.cnf)" if [ x != "x${MY_PID_02}" ] ; then echo "kill -9 ${MY_PID_02}" kill -9 ${MY_PID_02} sleep 2 fi #------------------------------------------------------------------------------# ### löschen # ZFS-Volumen zerstören echo "zfs destroy -r mysql_datadir/port_${PORTNUMMER}" zfs destroy -r mysql_datadir/port_${PORTNUMMER} # ZFS-Volumen-Mount-Point und zwei spezielle Dateien löschen echo "rm -fr /var/lib/mysql/port_${PORTNUMMER} /etc/default/mysql.${PORTNUMMER} /etc/default/mysql.${PORTNUMMER}.bootstrap" rm -fr /var/lib/mysql/port_${PORTNUMMER} /etc/default/mysql.${PORTNUMMER} /etc/default/mysql.${PORTNUMMER}.bootstrap # SystemD-Start-Stop-Datei-Reload echo "systemctl daemon-reload" systemctl daemon-reload