websoft9/scripts/reset_mysql_password.sh
2022-07-14 09:32:53 +08:00

52 lines
2.6 KiB
Bash

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# Check if user is root
if [ $(id -u) != "0" ]; then
echo -e "————————————————————————————————————————————————————
[ERROR] It is detected that you do not use root permissions to execute the script.
Please use the root account to log in to SSH to run this script
————————————————————————————————————————————————————"
exit
fi
clear
echo -e "————————————————————————————————————————————————————
Please enter the MySQL password you need to set up
Tip: do not enter a blank password.
————————————————————————————————————————————————————"
mysql_root_password=""
read -p "(Please enter the MySQL password you need to set up):" mysql_root_password
if [ "$mysql_root_password" = "" ]; then
echo "[ERROR] Please do not enter blank password\n"
exit 1
fi
printf "stop MySQL service......\n"
systemctl stop mysqld
printf "Setting the MySQL permissions table\n"
/usr/bin/mysqld_safe --skip-grant-tables >/dev/null 2>&1 &
printf "The permissions table is being refreshed and the password is reset\n"
sleep 10
/usr/bin/mysql -u root mysql << EOF
update user set password = Password('$mysql_root_password') where User = 'root';
EOF
reset_status=`echo $?`
if [ $reset_status = "0" ]; then
printf "The MySQL password has been set up successfully. Now restore the MySQL permissions table\n"
killall mysqld
sleep 10
printf "The MySQL service is being restarted\n"
systemctl start mysqld
echo -e "————————————————————————————————————————————————————
The MySQL password has been reset.
\033[33m $mysql_root_password \033[0m
————————————————————————————————————————————————————"
else
echo -e "————————————————————————————————————————————————————
[ERROR] Unable to reset the MySQL password.
————————————————————————————————————————————————————"
fi