Created
August 2, 2013 20:05
-
-
Save jcook793/6143001 to your computer and use it in GitHub Desktop.
Creates a MySQL user across several instances. Useful if you use replication but (for whatever reason) you don't replicate the "mysql" database.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
DEV_SERVERS="dev-db001 dev-db002" | |
QA_SERVERS="qa-db001 qa-db002" | |
STAGE_SERVERS="stage-db001 stage-db002" | |
PROD_SERVERS="prod-db001 prod-db002" | |
MYSQL=`which mysql` | |
read -p "Which environment (dev, qa, stage, prod): " ENVIRONMENT | |
case "${ENVIRONMENT}" in | |
"dev") SERVERS=${DEV_SERVERS};; | |
"qa") SERVERS=${QA_SERVERS};; | |
"stage") SERVERS=${STAGE_SERVERS};; | |
"prod") SERVERS=${PROD_SERVERS};; | |
*) echo "Invalid option"; exit;; | |
esac | |
read -p "Your MySQL username (${SERVERS}): " MYSQL_USER | |
read -s -p "Your MySQL password: " MYSQL_PASSWORD | |
echo; echo | |
read -p "New MySQL user: " NEW_USER | |
read -s -p "Password: " NEW_PASSWORD | |
echo; echo | |
Q1="CREATE USER '${NEW_USER}'@'localhost' IDENTIFIED BY '${NEW_PASSWORD}';" | |
Q2="GRANT ALL PRIVILEGES ON *.* TO '${NEW_USER}'@'localhost';" | |
Q3="CREATE USER '${NEW_USER}'@'%' IDENTIFIED BY '${NEW_PASSWORD}';" | |
Q4="GRANT ALL PRIVILEGES ON *.* TO '${NEW_USER}'@'%';" | |
Q5="FLUSH PRIVILEGES;" | |
SQL="${Q1}${Q2}${Q3}${Q4}${Q5}" | |
for SERVER in ${SERVERS}; do | |
echo "Creating ${NEW_USER} on ${SERVER}" | |
$MYSQL --user=${MYSQL_USER} --password=${MYSQL_PASSWORD} --host=${SERVER} --execute="$SQL" | |
done | |
echo; echo "Done" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment