Skip to content

Instantly share code, notes, and snippets.

@jesusgoku
Last active August 17, 2020 06:22
Show Gist options
  • Save jesusgoku/bc3479dc88ebd4c15a9f to your computer and use it in GitHub Desktop.
Save jesusgoku/bc3479dc88ebd4c15a9f to your computer and use it in GitHub Desktop.
Create a new database and a user and password to MySQL
#!/usr/bin/env bash
if [ $# -lt 3 ]; then
echo "Error, bad command call"
echo "Example:"
echo "command.sh dbname dbuser dbpass"
exit
fi
dbhost='localhost'
dbname=$1
dbuser=$2
dbpass=$3
mysqluser='root'
mysqlpass=''
# if [ $status -ne 0 ]; then
# echo -n 'User with privileges to create: '
# read mysqluser
# read -p 'Pass to user with privileges to create: ' mysqlpass
# fi
if [[ ! -z "$mysqlpass" ]]
then
mysql -u $mysqluser -p$mysqlpass -e "CREATE DATABASE $dbname;"
mysql -u $mysqluser -p$mysqlpass -e "CREATE USER '$dbuser'@'$dbhost' IDENTIFIED BY '$dbpass';"
mysql -u $mysqluser -p$mysqlpass -e "GRANT ALL PRIVILEGES ON $dbname.* TO '$dbuser'@'$dbhost';"
mysql -u $mysqluser -p$mysqlpass -e "FLUSH PRIVILEGES;"
fi
if [[ -z "$mysqlpass" ]]
then
mysql -u $mysqluser -e "CREATE DATABASE $dbname;"
mysql -u $mysqluser -e "CREATE USER '$dbuser'@'$dbhost' IDENTIFIED BY '$dbpass';"
mysql -u $mysqluser -e "GRANT ALL PRIVILEGES ON $dbname.* TO '$dbuser'@'$dbhost';"
mysql -u $mysqluser -e "FLUSH PRIVILEGES;"
fi
#!/usr/bin/env bash
echo CREATE MYSQL NEW USER
HOST="localhost"
USERNAME=$1
PASSWORD=$1
DBNAME=$1
MYSQL_USERNAME="root"
MYSQL_CREATE_DATABASE="\"CREATE DATABASE IF NOT EXISTS $DBNAME;\""
MYSQL_CREATE_USER_QUERY="\"CREATE USER '$USERNAME'@'$HOST' IDENTIFIED BY '$PASSWORD';\""
MYSQL_GRANT_PRIVILEGES_QUERY="\"GRANT ALL PRIVILEGES ON $DBNAME.* TO '$USERNAME'@'$HOST';\""
MYSQL_FLUSH_PRIVILEGES_QUERY="\"FLUSH PRIVILEGES;\""
MYSQL_CREATE_USER_COMMAND="mysql -u $MYSQL_USERNAME -p -e $MYSQL_CREATE_DATABASE -e $MYSQL_CREATE_USER_QUERY -e $MYSQL_GRANT_PRIVILEGES_QUERY -e $MYSQL_FLUSH_PRIVILEGES_QUERY"
eval "$MYSQL_CREATE_USER_COMMAND"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment