mirror of
https://github.com/10h30/ols-docker-env.git
synced 2026-05-12 15:21:24 +09:00
add delete database script
This commit is contained in:
+37
-1
@@ -8,6 +8,7 @@ SQL_PASS=''
|
|||||||
ANY="'%'"
|
ANY="'%'"
|
||||||
SET_OK=0
|
SET_OK=0
|
||||||
EPACE=' '
|
EPACE=' '
|
||||||
|
METHOD=0
|
||||||
|
|
||||||
echow(){
|
echow(){
|
||||||
FLAG=${1}
|
FLAG=${1}
|
||||||
@@ -23,6 +24,9 @@ help_message(){
|
|||||||
echow '-D, --domain [DOMAIN_NAME] -U, --user [xxx] -P, --password [xxx] -DB, --database [xxx]'
|
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}Example: database.sh -D example.com -U USERNAME -P PASSWORD -DB DATABASENAME"
|
||||||
echo "${EPACE}${EPACE}Will create Database/username/password by given"
|
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'
|
echow '-H, --help'
|
||||||
echo "${EPACE}${EPACE}Display help and exit."
|
echo "${EPACE}${EPACE}Display help and exit."
|
||||||
exit 0
|
exit 0
|
||||||
@@ -94,6 +98,14 @@ check_db_exist(){
|
|||||||
fi
|
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(){
|
db_setup(){
|
||||||
docker compose exec -T mysql su -c 'mysql -uroot -p${MYSQL_ROOT_PASSWORD} \
|
docker compose exec -T mysql su -c 'mysql -uroot -p${MYSQL_ROOT_PASSWORD} \
|
||||||
-e "CREATE DATABASE '${SQL_DB}';" \
|
-e "CREATE DATABASE '${SQL_DB}';" \
|
||||||
@@ -102,6 +114,22 @@ db_setup(){
|
|||||||
SET_OK=${?}
|
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(){
|
auto_setup_main(){
|
||||||
check_input ${DOMAIN}
|
check_input ${DOMAIN}
|
||||||
gen_pass
|
gen_pass
|
||||||
@@ -124,6 +152,10 @@ specify_setup_main(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
main(){
|
main(){
|
||||||
|
if [ ${METHOD} == 1 ]; then
|
||||||
|
db_delete
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
if [ "${SQL_USER}" != '' ] && [ "${SQL_PASS}" != '' ] && [ "${SQL_DB}" != '' ]; then
|
if [ "${SQL_USER}" != '' ] && [ "${SQL_PASS}" != '' ] && [ "${SQL_DB}" != '' ]; then
|
||||||
specify_setup_main
|
specify_setup_main
|
||||||
else
|
else
|
||||||
@@ -148,7 +180,11 @@ while [ ! -z "${1}" ]; do
|
|||||||
;;
|
;;
|
||||||
-db | -DB | -database| --database) shift
|
-db | -DB | -database| --database) shift
|
||||||
SQL_DB="${1}"
|
SQL_DB="${1}"
|
||||||
;;
|
;;
|
||||||
|
-[rR] | -del | --del | --delete) shift
|
||||||
|
DOMAIN="${1}"
|
||||||
|
METHOD=1
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
help_message
|
help_message
|
||||||
;;
|
;;
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ services:
|
|||||||
image: mariadb:10.5.9
|
image: mariadb:10.5.9
|
||||||
logging:
|
logging:
|
||||||
driver: none
|
driver: none
|
||||||
command: [--max-allowed-packet=512M]
|
command: ["--max-allowed-packet=512M"]
|
||||||
volumes:
|
volumes:
|
||||||
- "./data/db:/var/lib/mysql:delegated"
|
- "./data/db:/var/lib/mysql:delegated"
|
||||||
environment:
|
environment:
|
||||||
|
|||||||
Reference in New Issue
Block a user