if [ "$1" == "-h" ]; then echo "Usage:" echo " ./db-setup.sh " echo " or" echo " ./db-setup.sh" exit 0 fi if [ -z "$1" ] && [ -z "$2" ] && [ -z "$3" ]; then read -sp "Set root password: " rootPassword read -sp $'\n'"Confirm root password: " confirmPassword read -p $'\n'"Main Username: " MAINDB read -sp "Main user's password: " PASSWDDB else rootPassword="$1" confirmPassword="$1" MAINDB="$2" PASSWDDB="$3" fi # Adapted from https://stackoverflow.com/questions/33470753/create-mysql-database-and-user-in-bash-script # create random password #PASSWDDB="$(openssl rand -base64 12)" # replace "-" with "_" for database username #MAINDB=${USER_NAME//[^a-zA-Z0-9]/_} # mysql -uroot -p${rootPassword} -e "show databases;" # mysql -uroot -p${rootPassword} -e "ALTER USER 'root'@'%' IDENTIFIED BY 'Passw0rd!';" # mysql -uroot -p${rootPassword} -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'Passw0rd!';" # mysql -uroot -p${rootPassword} -e "CREATE DATABASE ${MAINDB} /*\!40100 DEFAULT CHARACTER SET utf8 */;" # mysql -uroot -p${rootPassword} -e "CREATE DATABASE Session /*\!40100 DEFAULT CHARACTER SET utf8 */;" # mysql -uroot -p${rootPassword} -e "CREATE USER ${MAINDB}@'%' IDENTIFIED BY '${PASSWDDB}';" # mysql -uroot -p${rootPassword} -e "GRANT ALL PRIVILEGES ON ${MAINDB}.* TO '${MAINDB}'@'%';" mysql -uroot -p${rootPassword} -e "GRANT ALL PRIVILEGES ON Session.* TO '${MAINDB}'@'%';" mysql -uroot -p${rootPassword} -e "FLUSH PRIVILEGES;" # mysql -uroot -p${rootPassword} -e "ALTER USER root@localhost IDENTIFIED BY 'Passw0rd!';" # mysql -uroot -p${rootPassword} -e "select Host, User, Password from mysql.user;" # mysql -uroot -p${rootPassword} -e "show databases;" exit 0