@ -0,0 +1,94 @@ | |||
#!/bin/bash | |||
echo "####################################################################" | |||
echo "# docker_mariadb create_database_for_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="" | |||
MARIADB_DATABASE_NAME="" | |||
MARIADB_DATABASE_CHARACTER_SET="" | |||
MARIADB_DATABASE_COLLATE="" | |||
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]}" | |||
read -p "Enter database name: " MARIADB_DATABASE_NAME | |||
read -p "Enter character set (leave empty for default (utf8)): " MARIADB_DATABASE_CHARACTER_SET | |||
read -p "Enter collate (leave empty for default (utf8_unicode_ci)): " MARIADB_DATABASE_COLLATE | |||
if [[ -z $MARIADB_DATABASE_CHARACTER_SET ]]; then | |||
MARIADB_DATABASE_CHARACTER_SET="utf8" | |||
fi | |||
if [[ -z $MARIADB_DATABASE_COLLATE ]]; then | |||
MARIADB_DATABASE_COLLATE="utf8_unicode_ci" | |||
fi | |||
rm -f tmp | |||
touch tmp | |||
echo "CREATE DATABASE IF NOT EXISTS $MARIADB_DATABASE_NAME CHARACTER SET '$MARIADB_DATABASE_CHARACTER_SET' COLLATE '$MARIADB_DATABASE_COLLATE';" >> tmp | |||
echo "GRANT ALL PRIVILEGES ON $MARIADB_DATABASE_NAME.* TO '$MARIADB_CUSTOMER_NAME'@'%';" >> tmp | |||
echo "FLUSH PRIVILEGES;" >> tmp | |||
TMP=$(cat tmp | docker exec -i $MARIADB_CONTAINER_NAME mysql -uroot -p$MARIADB_ROOT_PASSWORD -BN) | |||
rm -f tmp | |||
echo "Done!" |
@ -0,0 +1,108 @@ | |||
#!/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!" |
@ -0,0 +1,65 @@ | |||
#!/bin/bash | |||
echo "####################################################################" | |||
echo "# docker_mariadb get_customers 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 " ${CUSTOMER_LIST[$I]}" | |||
done | |||
else | |||
echo "No customers!" | |||
fi | |||
rm -f tmp | |||
echo "Done!" |
@ -0,0 +1,93 @@ | |||
#!/bin/bash | |||
echo "####################################################################" | |||
echo "# docker_mariadb get_databases_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 " ${DATABASE_LIST[$I]}" | |||
done | |||
else | |||
echo "No databases!" | |||
fi | |||
rm -f tmp | |||
echo "Done!" |