#!/bin/bash echo "####################################################################" echo "# docker_mariadb delete_database_from_customer script #" echo "# Dennis Buchhorn - bucde@b-eit.de #" echo "####################################################################" echo "# WARNING: password is plain text! #" #echo "# #" echo "####################################################################" echo "" MARIADB_CONTAINER_NAME="" MARIADB_ROOT_PASSWORD="" TMP=$(docker container ls --format "{{.Names}}") for ENTRY in $TMP; do CONTAINER_LIST+=($ENTRY) done if [[ ${#CONTAINER_LIST[@]} > 0 ]]; then echo "List of all running containers:" for I in ${!CONTAINER_LIST[@]}; do echo " Number [$I]: ${CONTAINER_LIST[$I]}" done else echo "No containers running!" exit 1 fi read -p "Enter mariadb container number: " TMP MARIADB_CONTAINER_NAME="${CONTAINER_LIST[$TMP]}" read -p "Enter mariadb root password: " MARIADB_ROOT_PASSWORD rm -f tmp touch tmp echo "SELECT user FROM mysql.user;" >> tmp TMP=$(cat tmp | docker exec -i $MARIADB_CONTAINER_NAME mysql -uroot -p$MARIADB_ROOT_PASSWORD -BN) rm -f tmp for ENTRY in $TMP; do if ! [[ $ENTRY == "root" || $ENTRY == "mariadb.sys" ]]; then CUSTOMER_LIST+=($ENTRY) fi done if [[ ${CUSTOMER_LIST[@]} > 0 ]]; then echo "List of all customers:" for I in ${!CUSTOMER_LIST[@]}; do echo " Number [$I]: ${CUSTOMER_LIST[$I]}" done else echo "No customers!" exit 1 fi read -p "Enter customer number: " TMP MARIADB_CUSTOMER_NAME="${CUSTOMER_LIST[$TMP]}" rm -f tmp touch tmp echo "SELECT db FROM mysql.db WHERE user='$MARIADB_CUSTOMER_NAME';" >> tmp TMP=$(cat tmp | docker exec -i $MARIADB_CONTAINER_NAME mysql -uroot -p$MARIADB_ROOT_PASSWORD -BN) rm -f tmp for ENTRY in $TMP; do DATABASE_LIST+=($ENTRY) done if [[ ${#DATABASE_LIST[@]} > 0 ]]; then echo "List of all databases from $MARIADB_CUSTOMER_NAME:" for I in ${!DATABASE_LIST[@]}; do echo " Number [$I]: ${DATABASE_LIST[$I]}" done else echo "No databases!" exit 1 fi read -p "Enter database number: " TMP MARIADB_DATABASE_NAME="${DATABASE_LIST[$TMP]}" read -p "!!! WARNING !!! Database '$MARIADB_DATABASE_NAME' will be deleted! Press ENTER to continue or CTRL+C to abort..." rm -f tmp touch tmp echo "REVOKE ALL PRIVILEGES ON $MARIADB_DATABASE_NAME.* FROM '$MARIADB_CUSTOMER_NAME';" >> tmp echo "DROP DATABASE IF EXISTS $MARIADB_DATABASE_NAME;" >> tmp TMP=$(cat tmp | docker exec -i $MARIADB_CONTAINER_NAME mysql -uroot -p$MARIADB_ROOT_PASSWORD -BN) rm -f tmp echo "Done!"