add delete database script

This commit is contained in:
Travis Tran
2023-12-21 16:44:12 +07:00
parent ad99711392
commit 51e96582c9
2 changed files with 38 additions and 2 deletions
+37 -1
View File
@@ -8,6 +8,7 @@ SQL_PASS=''
ANY="'%'"
SET_OK=0
EPACE=' '
METHOD=0
echow(){
FLAG=${1}
@@ -23,6 +24,9 @@ help_message(){
echow '-D, --domain [DOMAIN_NAME] -U, --user [xxx] -P, --password [xxx] -DB, --database [xxx]'
echo "${EPACE}${EPACE}Example: database.sh -D example.com -U USERNAME -P PASSWORD -DB DATABASENAME"
echo "${EPACE}${EPACE}Will create Database/username/password by given"
echow '-r, --delete [DOMAIN_NAME] -DB, --database [xxx] -U, --user [xxx]'
echo "${EPACE}${EPACE}Example: database.sh -r example.com -DB DATABASENAME -U USERNAME"
echo "${EPACE}${EPACE}Will delete database (require) and username (optional) by given"
echow '-H, --help'
echo "${EPACE}${EPACE}Display help and exit."
exit 0
@@ -94,6 +98,14 @@ check_db_exist(){
fi
}
check_db_not_exist(){
docker compose exec -T mysql su -c "test -e /var/lib/mysql/${1}"
if [ ${?} != 0 ]; then
echo "Database ${1} doesn't exist, skip DB deletion!"
exit 0
fi
}
db_setup(){
docker compose exec -T mysql su -c 'mysql -uroot -p${MYSQL_ROOT_PASSWORD} \
-e "CREATE DATABASE '${SQL_DB}';" \
@@ -102,6 +114,22 @@ db_setup(){
SET_OK=${?}
}
db_delete(){
if [ "${SQL_DB}" == '' ]; then
echo "Database parameter is required!"
exit 0
fi
if [ "${SQL_USER}" == '' ]; then
SQL_USER="${SQL_DB}"
fi
check_db_not_exist ${SQL_DB}
docker compose exec -T mysql su -c 'mysql -uroot -p${MYSQL_ROOT_PASSWORD} \
-e "DROP DATABASE IF EXISTS '${SQL_DB}';" \
-e "DROP USER IF EXISTS '${SQL_USER}'@'${ANY}';" \
-e "FLUSH PRIVILEGES;"'
echo "Database ${SQL_DB} and User ${SQL_USER} are deleted!"
}
auto_setup_main(){
check_input ${DOMAIN}
gen_pass
@@ -124,6 +152,10 @@ specify_setup_main(){
}
main(){
if [ ${METHOD} == 1 ]; then
db_delete
exit 0
fi
if [ "${SQL_USER}" != '' ] && [ "${SQL_PASS}" != '' ] && [ "${SQL_DB}" != '' ]; then
specify_setup_main
else
@@ -148,7 +180,11 @@ while [ ! -z "${1}" ]; do
;;
-db | -DB | -database| --database) shift
SQL_DB="${1}"
;;
;;
-[rR] | -del | --del | --delete) shift
DOMAIN="${1}"
METHOD=1
;;
*)
help_message
;;