Skip to content

Instantly share code, notes, and snippets.

@MLWALK3R
Forked from thomasmb/mysql_pwd_reset.sh
Last active August 29, 2015 14:13
Show Gist options
  • Save MLWALK3R/0cb0dfec593c7cdceb2a to your computer and use it in GitHub Desktop.
Save MLWALK3R/0cb0dfec593c7cdceb2a to your computer and use it in GitHub Desktop.
# Please confirm that you want to reset the MySQL passwords
CONFIRM="n"
echo -n "Please confirm MySQL password reset. Continue? (y/N): "
read -n 1 CONFIRM_INPUT
if [ -n "$CONFIRM_INPUT" ]; then
CONFIRM=$CONFIRM_INPUT
fi
echo
# check if we are resetting the MySQL password
if [[ "${CONFIRM}" =~ ^[Yy]$ ]]; then
# Kill any mysql processes currently running
echo 'Shutting down any mysql processes...'
service mysql stop
killall -vw mysqld
# Start mysql without grant tables
mysqld_safe --skip-grant-tables >res 2>&1 &
echo 'Resetting password... hold on'
# Sleep for 5 while the new mysql process loads (if get a connection error you might need to increase this.)
sleep 5
# Creating the password
DB_ROOT_PASS=`openssl rand -base64 15`
DB_ROOT_USER='root'
# Update root user with new password
mysql mysql -e "UPDATE user SET Password=PASSWORD('$DB_ROOT_PASS') WHERE User='$DB_ROOT_USER';FLUSH PRIVILEGES;"
echo 'Cleaning up...'
# Kill the insecure mysql process
killall -v mysqld
# Starting mysql again
service mysql restart
echo
echo "Password reset has been completed"
echo
echo "MySQL root password: $DB_ROOT_PASS"
echo
echo "Remember to store this password safely!"
else
echo "Password reset was aborted"
fi
echo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment