Create MySql user and database from script

# Create random password
PASSWDDB="$(openssl rand -base64 12)"
 
# Replace "-" with "_" for database username
MAINDB=${USER_NAME//[^a-zA-Z0-9]/_}
 
# If /root/.my.cnf exists then it won't ask for root password
if [ -f /root/.my.cnf ]; then
 
    mysql -e "CREATE DATABASE ${MAINDB} /*\!40100 DEFAULT CHARACTER SET utf8 */;"
    mysql -e "CREATE USER ${MAINDB}@localhost IDENTIFIED BY '${PASSWDDB}';"
    mysql -e "GRANT ALL PRIVILEGES ON ${MAINDB}.* TO '${MAINDB}'@'localhost';"
    mysql -e "FLUSH PRIVILEGES;"
 
# If /root/.my.cnf doesn't exist then it'll ask for root password   
else
    echo "Please enter root as MySQL user and Password!"
    echo "Note: password will be hidden when typing"
    read -sp rootpasswd
    mysql -uroot -p${rootpasswd} -e "CREATE DATABASE ${MAINDB} /*\!40100 DEFAULT CHARACTER SET utf8 */;"
    mysql -uroot -p${rootpasswd} -e "CREATE USER ${MAINDB}@localhost IDENTIFIED BY '${PASSWDDB}';"
    mysql -uroot -p${rootpasswd} -e "GRANT ALL PRIVILEGES ON ${MAINDB}.* TO '${MAINDB}'@'localhost';"
    mysql -uroot -p${rootpasswd} -e "FLUSH PRIVILEGES;"
fi
Please follow and like us:
Content Protection by DMCA.com