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