forked from Ubuntu-ve/lnmp
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathreset_db_root_password.sh
executable file
·61 lines (56 loc) · 2.25 KB
/
reset_db_root_password.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/bin/bash
# Author: yeho <lj2007331 AT gmail.com>
# BLOG: https://blog.linuxeye.com
#
# Notes: OneinStack for CentOS/RadHat 6+ Debian 7+ and Ubuntu 12+
#
# Project home page:
# https://oneinstack.com
# /~https://github.com/lj2007331/oneinstack
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
clear
printf "
#######################################################################
# OneinStack for CentOS/RadHat 6+ Debian 7+ and Ubuntu 12+ #
# Reset Database root password for OneinStack #
# For more information please visit https://oneinstack.com #
#######################################################################
"
OIS_FOLDER=$(dirname "`readlink -f $0`")
pushd $OIS_FOLDER > /dev/null
. ./options.conf
. ./include/color.sh
. ./include/check_dir.sh
Input_db_root_password() {
[ ! -d "$db_install_dir" ] && { echo "${CFAILURE}Database is not installed on your system! ${CEND}"; exit 1; }
while :; do echo
read -p "Please input the root password of database: " New_dbrootpwd
[ -n "`echo $New_dbrootpwd | grep '[+|&]'`" ] && { echo "${CWARNING}input error,not contain a plus sign (+) and &${CEND}"; continue; }
(( ${#New_dbrootpwd} >= 5 )) && break || echo "${CWARNING}database root password least 5 characters! ${CEND}"
done
}
Reset_db_root_password() {
$db_install_dir/bin/mysqladmin -uroot -p"$dbrootpwd" password "$New_dbrootpwd" -h localhost > /dev/null 2>&1
status_Localhost=`echo $?`
$db_install_dir/bin/mysqladmin -uroot -p"$dbrootpwd" password "$New_dbrootpwd" -h 127.0.0.1 > /dev/null 2>&1
status_127=`echo $?`
if [ $status_Localhost == '0' -a $status_127 == '0' ]; then
sed -i "s+^dbrootpwd.*+dbrootpwd='$New_dbrootpwd'+" ./options.conf
echo
echo "Password reset succesfully! "
echo "The new password: ${CMSG}${New_dbrootpwd}${CEND}"
echo
else
echo "${CFAILURE}Reset Database root password failed! ${CEND}"
fi
}
if [ "$1" == 'quiet' ]; then
New_dbrootpwd="`< /dev/urandom tr -dc A-Za-z0-9 | head -c8`"
sleep 2 && [ ! -e /tmp/mysql.sock ] && /etc/init.d/mysqld start
Reset_db_root_password
[ $? -eq 0 ] && sed -i '/reset_db_root_password/d' /etc/rc.d/rc.local
else
Input_db_root_password
Reset_db_root_password
fi
popd > /dev/null