-3

It seems that this code is not working I tried using it on my debian 7 machine and the password it gives me is wrong.

# 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 mysql

# 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_LEN=`shuf -i 20-30 -n 1`
DB_ROOT_PASS=`pwgen -scn $DB_ROOT_PASS_LEN 1`
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
EEAA
  • 108,414
  • 18
  • 172
  • 242
noob
  • 1

1 Answers1

0

Different versions of MySQL can have different requirements for password storage. Also, its requirements can be affected by the settings in my.cnf. There is a small chance that your password reset is using a format that is not allowed by the my.cnf settings.

https://stackoverflow.com/questions/1892607/mysql-password-hashing-method-old-vs-new

Dan Armstrong
  • 821
  • 4
  • 6