init commit
This commit is contained in:
parent
6f062e5461
commit
8744bef507
19
README.md
19
README.md
@ -1,3 +1,20 @@
|
||||
# db
|
||||
|
||||
MySQL tool
|
||||
MySQL tool
|
||||
|
||||

|
||||
|
||||
Installation
|
||||
|
||||
```sh
|
||||
git clone https://git.vaidis.eu/stevaidis/db.git
|
||||
chmod +x db/db
|
||||
ln -s $PWD/db/db /usr/sbin/
|
||||
```
|
||||
|
||||
Configure
|
||||
|
||||
```sh
|
||||
DBUSER="root"
|
||||
DBPASS="1234"
|
||||
```
|
||||
|
||||
163
db
Executable file
163
db
Executable file
@ -0,0 +1,163 @@
|
||||
#!/bin/bash
|
||||
|
||||
RED="\e[0;31m"
|
||||
GRN="\e[0;32m"
|
||||
BLU="\e[0;34m"
|
||||
WHT="\e[0;97m"
|
||||
BOLDRED="\e[1;31m"
|
||||
BOLDGRN="\e[1;32m"
|
||||
BOLDBLU="\e[1;34m"
|
||||
BOLDWHT="\e[1;97m"
|
||||
END="\e[00m"
|
||||
|
||||
DBUSER="root"
|
||||
DBPASS="1234"
|
||||
|
||||
function usage() {
|
||||
echo
|
||||
echo -e " ${BOLDWHT}db${END} v1.0 is a simple MySQL tool"
|
||||
echo
|
||||
echo -e " 🌈 \e[1mList\e[0m"
|
||||
echo -e "${WHT}./db ${BOLDBLU}-lu${END} List users"
|
||||
echo -e "${WHT}./db ${BOLDBLU}-ld${END} List databases"
|
||||
echo -e "${WHT}./db ${BOLDBLU}-lt${BLU} dbname${END} List tables from dbname"
|
||||
echo
|
||||
echo -e " 🔥 \e[1mDelete\e[0m"
|
||||
echo -e "${WHT}./db ${BOLDRED}-d${RED} xzy${END} Delete user & database"
|
||||
echo -e "${WHT}./db ${BOLDRED}-du${RED} xzy${END} Delete user"
|
||||
echo -e "${WHT}./db ${BOLDRED}-dd${RED} xzy${END} Delete database"
|
||||
echo
|
||||
echo -e " 🌱 \e[1mCreate\e[0m"
|
||||
echo -e "${WHT}./db ${BOLDGRN}-c${GRN} xzy${END} Create user & database"
|
||||
echo -e "${WHT}./db ${BOLDGRN}-cu${GRN} xzy${END} Create user"
|
||||
echo -e "${WHT}./db ${BOLDGRN}-cd${GRN} xzy${END} Create database"
|
||||
echo
|
||||
echo -e " 🛟 \e[1mBackup\e[0m"
|
||||
echo -e "${WHT}./db ${BOLDBLU}-e${BLU} dbname${END} Export database to dbname.sql"
|
||||
echo -e "${WHT}./db ${BOLDBLU}-i${BLU} dbname dump.sql${END} Import dump.sql into dbname"
|
||||
echo
|
||||
exit
|
||||
}
|
||||
|
||||
# List
|
||||
|
||||
function list_databases() {
|
||||
mysql -u${DBUSER} -p${DBPASS} -Nse 'show databases' | grep -Ev '(information_schema|mysql|performance_schema)'
|
||||
}
|
||||
|
||||
function list_users() {
|
||||
mysql -u${DBUSER} -p${DBPASS} -Nse "SELECT user FROM mysql.user WHERE user NOT IN ('root','mysql','mariadb.sys','mysql.sys')"
|
||||
}
|
||||
|
||||
function list_tables() {
|
||||
echo -e "Database ${BOLDBLU}${1}${END} contains ${BOLDWHT}$(mysql -u${DBUSER} -p${DBPASS} -Nse "use $1; show tables;" | wc -l)${END} tables"
|
||||
}
|
||||
|
||||
# DELETE
|
||||
|
||||
function delete_database() {
|
||||
mysql -u${DBUSER} -p${DBPASS} -e "drop database $1"
|
||||
list_databases | grep -e "^$1$"
|
||||
}
|
||||
|
||||
function delete_user() {
|
||||
mysql -u${DBUSER} -p${DBPASS} -e "DROP USER '$1'@'localhost'"
|
||||
list_users | grep -e "^$1$"
|
||||
}
|
||||
|
||||
function delete_all() {
|
||||
delete_user $1
|
||||
delete_database $1
|
||||
}
|
||||
|
||||
|
||||
# CREATE
|
||||
|
||||
function create_database() {
|
||||
mysql -u${DBUSER} -p${DBPASS} -e "create database $1"
|
||||
echo -e "Database created: ${BOLDGRN}$(list_databases | grep $1)${END}"
|
||||
}
|
||||
|
||||
function create_user() {
|
||||
mysql -u${DBUSER} -p${DBPASS} -e "CREATE USER $1@localhost IDENTIFIED BY '1234'"
|
||||
mysql -u${DBUSER} -p${DBPASS} -e "GRANT ALL ON $1.* TO $1@localhost"
|
||||
echo -e "User created: ${BOLDGRN}$(list_users | grep $1)${END}"
|
||||
}
|
||||
|
||||
function create_all() {
|
||||
create_database $1
|
||||
create_user $1
|
||||
}
|
||||
|
||||
# BACKUP
|
||||
|
||||
function export_database() {
|
||||
mysqldump -u${DBUSER} -p${DBPASS} $1 > $1.sql
|
||||
ls -l $1.sql
|
||||
}
|
||||
|
||||
function import_database() {
|
||||
echo -e "Before import database ${BOLDBLU}${1}${END} contains ${BOLDWHT}$(mysql -u${DBUSER} -p${DBPASS} -Nse "use $1; show tables;" | wc -l)${END} tables"
|
||||
mysql -u${DBUSER} -p${DBPASS} $1 < $2
|
||||
echo -e "After import database ${BOLDBLU}${1}${END} contains ${BOLDWHT}$(mysql -u${DBUSER} -p${DBPASS} -Nse "use $1; show tables;" | wc -l)${END} tables"
|
||||
}
|
||||
|
||||
for i in "$@"
|
||||
do
|
||||
case $i in
|
||||
-h)
|
||||
usage
|
||||
exit
|
||||
;;
|
||||
-lu)
|
||||
list_users
|
||||
exit
|
||||
;;
|
||||
-ld)
|
||||
list_databases
|
||||
exit
|
||||
;;
|
||||
-lt)
|
||||
list_tables $2
|
||||
exit
|
||||
;;
|
||||
-dd)
|
||||
delete_database $2
|
||||
exit
|
||||
;;
|
||||
-du)
|
||||
delete_user $2
|
||||
exit
|
||||
;;
|
||||
-d)
|
||||
delete_all $2
|
||||
exit
|
||||
;;
|
||||
-cd)
|
||||
create_database $2
|
||||
exit
|
||||
;;
|
||||
-cu)
|
||||
create_user $2
|
||||
exit
|
||||
;;
|
||||
-c)
|
||||
create_all $2
|
||||
exit
|
||||
;;
|
||||
-e)
|
||||
export_database $2
|
||||
exit
|
||||
;;
|
||||
-i)
|
||||
import_database $2 $3
|
||||
exit
|
||||
;;
|
||||
*)
|
||||
usage
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
usage
|
||||
Loading…
x
Reference in New Issue
Block a user