ranchodeluxemedia
3/24/2016 - 5:43 PM

MySQL creation via bash script

MySQL creation via bash script

#!/bin/bash

#USAGE: ./createdb testdb testuser secretpass
#grant ALL ON *.* seems to give all privileges to ALL databases, shouldn't it be GRANT ALL ON '$1'.* ?
 
EXPECTED_ARGS=3
E_BADARGS=65
MYSQL=`which mysql`
 
Q1="CREATE DATABASE IF NOT EXISTS $1;"
Q2="GRANT ALL ON $1.* TO '$2'@'localhost' IDENTIFIED BY '$3';"
Q3="FLUSH PRIVILEGES;"
SQL="${Q1}${Q2}${Q3}"
 
if [ $# -ne $EXPECTED_ARGS ]
then
  echo "Usage: $0 dbname dbuser dbpass"
  exit $E_BADARGS
fi
 
$MYSQL -uroot -p -e "$SQL"