init commit
This commit is contained in:
parent
6f062e5461
commit
8744bef507
19
README.md
19
README.md
@ -1,3 +1,20 @@
|
|||||||
# db
|
# 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