#!/bin/bash
#
##################################
# CentOS Web Panel SCRIPT's
###################################
echo
echo
# Please confirm that you want to reset the MySQL passwords
CONFIRM="n"
echo -n "Please confirm MySQL root 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 mysqld 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=`cat /dev/urandom| tr -dc 'a-zA-Z0-9' | fold -w 12|head -n1`
        DB_ROOT_USER='root'

        # Update root user with new password
        mysql -e "UPDATE mysql.user SET Password=PASSWORD('$DB_ROOT_PASS') WHERE user='$DB_ROOT_USER';FLUSH PRIVILEGES;"

        echo 'Cleaning up...'

        # Kill the insecure mysql process
        service mysqld stop
        killall -v mysqld

        # Starting mysql again
        service mysqld start

        cat > /root/.my.cnf <<EOF
[client]
password=$DB_ROOT_PASS
user=root
EOF
chmod 600 /root/.my.cnf
sed -i "s/db_pass.*/db_pass = '$DB_ROOT_PASS';/g" /usr/local/cwpsrv/htdocs/resources/admin/include/db_conn.php

        service mysqld status
        echo
        echo "Password reset has been completed"
        echo
        echo "New MySQL root password: $DB_ROOT_PASS"
        echo
        echo "Remember to store this password safely!"
else
        echo "Password reset was aborted"
fi

echo