@@ -8,6 +8,7 @@ SQL_PASS=''
8
8
ANY=" '%'"
9
9
SET_OK=0
10
10
EPACE=' '
11
+ METHOD=0
11
12
12
13
echow (){
13
14
FLAG=${1}
@@ -19,10 +20,13 @@ help_message(){
19
20
echo -e " \033[1mOPTIONS\033[0m"
20
21
echow ' -D, --domain [DOMAIN_NAME]'
21
22
echo " ${EPACE}${EPACE} Example: database.sh -D example.com"
22
- echo " ${EPACE}${EPACE} Will auto generate Database/username/password for the domain"
23
+ echo " ${EPACE}${EPACE} Will auto- generate Database/username/password for the domain"
23
24
echow ' -D, --domain [DOMAIN_NAME] -U, --user [xxx] -P, --password [xxx] -DB, --database [xxx]'
24
25
echo " ${EPACE}${EPACE} Example: database.sh -D example.com -U USERNAME -P PASSWORD -DB DATABASENAME"
25
26
echo " ${EPACE}${EPACE} Will create Database/username/password by given"
27
+ echow ' -R, --delete -DB, --database [xxx] -U, --user [xxx]'
28
+ echo " ${EPACE}${EPACE} Example: database.sh -r -DB DATABASENAME -U USERNAME"
29
+ echo " ${EPACE}${EPACE} Will delete the database (require) and username (optional) by given"
26
30
echow ' -H, --help'
27
31
echo " ${EPACE}${EPACE} Display help and exit."
28
32
exit 0
79
83
}
80
84
81
85
check_db_access (){
82
- docker compose exec -T mysql su -c " mysql -uroot -p ${MYSQL_ROOT_PASSWORD} -e 'status'" > /dev/null 2>&1
86
+ docker compose exec -T mysql su -c " mariadb -uroot --password= ${MYSQL_ROOT_PASSWORD} -e 'status'" > /dev/null 2>&1
83
87
if [ ${?} != 0 ]; then
84
88
echo ' [X] DB access failed, please check!'
85
89
exit 1
@@ -94,14 +98,38 @@ check_db_exist(){
94
98
fi
95
99
}
96
100
101
+ check_db_not_exist (){
102
+ docker compose exec -T mysql su -c " test -e /var/lib/mysql/${1} "
103
+ if [ ${?} != 0 ]; then
104
+ echo " Database ${1} doesn't exist, skip DB deletion!"
105
+ exit 0
106
+ fi
107
+ }
108
+
97
109
db_setup (){
98
- docker compose exec -T mysql su -c ' mysql -uroot -p ${MYSQL_ROOT_PASSWORD} \
110
+ docker compose exec -T mysql su -c ' mariadb -uroot --password= ${MYSQL_ROOT_PASSWORD} \
99
111
-e "CREATE DATABASE ' ${SQL_DB} ' ;" \
100
112
-e "GRANT ALL PRIVILEGES ON ' ${SQL_DB} ' .* TO ' ${SQL_USER} ' @' ${ANY} ' IDENTIFIED BY ' ${SQL_PASS} ' ;" \
101
113
-e "FLUSH PRIVILEGES;"'
102
114
SET_OK=${?}
103
115
}
104
116
117
+ db_delete (){
118
+ if [ " ${SQL_DB} " == ' ' ]; then
119
+ echo " Database parameter is required!"
120
+ exit 0
121
+ fi
122
+ if [ " ${SQL_USER} " == ' ' ]; then
123
+ SQL_USER=" ${SQL_DB} "
124
+ fi
125
+ check_db_not_exist ${SQL_DB}
126
+ docker compose exec -T mysql su -c ' mariadb -uroot --password=${MYSQL_ROOT_PASSWORD} \
127
+ -e "DROP DATABASE IF EXISTS ' ${SQL_DB} ' ;" \
128
+ -e "DROP USER IF EXISTS ' ${SQL_USER} ' @' ${ANY} ' ;" \
129
+ -e "FLUSH PRIVILEGES;"'
130
+ echo " Database ${SQL_DB} and User ${SQL_USER} are deleted!"
131
+ }
132
+
105
133
auto_setup_main (){
106
134
check_input ${DOMAIN}
107
135
gen_pass
@@ -124,6 +152,10 @@ specify_setup_main(){
124
152
}
125
153
126
154
main (){
155
+ if [ ${METHOD} == 1 ]; then
156
+ db_delete
157
+ exit 0
158
+ fi
127
159
if [ " ${SQL_USER} " != ' ' ] && [ " ${SQL_PASS} " != ' ' ] && [ " ${SQL_DB} " != ' ' ]; then
128
160
specify_setup_main
129
161
else
@@ -148,11 +180,14 @@ while [ ! -z "${1}" ]; do
148
180
;;
149
181
-db | -DB | -database| --database) shift
150
182
SQL_DB=" ${1} "
151
- ;;
183
+ ;;
184
+ -[rR] | -del | --del | --delete)
185
+ METHOD=1
186
+ ;;
152
187
* )
153
188
help_message
154
189
;;
155
190
esac
156
191
shift
157
192
done
158
- main
193
+ main
0 commit comments