#!/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!"
|