@ -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!" |