0
Shell :: simple MySQL DB provisioning
Jan 18, 2010
In Uncategorized
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | #!/bin/bash #provmysqldb.sh ARGS=("$@") #GLOBALS MYSQLHOST=your.server.name MYSQLPASS=yourpass #ARGS ACTION=${ARGS[0]} USER=${ARGS[1]} #maybe we want to split this out later DB=${ARGS[1]} if [[ $ACTION && $USER && $DB ]]; then case $ACTION in create) #check to see if db exists echo "use ${DB}" | mysql -s -h $MYSQLHOST -u root -p$MYSQLPASS 2> /dev/null if [ $? -ne 0 ]; then echo -n 'enter password: ' read PASS OP=" create database ${DB}; create user '${USER}'@'%' identified by '${PASS}'; grant all ON ${DB}.* to '${USER}'@'%'; flush privileges;" else echo "The database/user: ${DB} already exists" fi ;; delete) #check to see if db exists echo "use ${DB}" | mysql -h $MYSQLHOST -u root -p$MYSQLPASS 2> /dev/null if [ $? -eq 0 ]; then OP=" drop database ${DB}; drop user '${USER}'@'%'; flush privileges;" else echo "The database/user: ${DB} doesn't exist" fi ;; *) echo 'Operation not supported' ;; esac if [[ $OP ]]; then echo $OP | mysql -h $MYSQLHOST -u root -p$MYSQLPASS 2> /dev/null if [ $? -eq 0 ]; then echo 'Operation Succeeded!' else echo 'Operation Failed!' fi fi else echo 'USAGE: provmysqldb.sh <action:create|delete> <dbname>' fi |