mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
42 lines
1.3 KiB
Text
42 lines
1.3 KiB
Text
backup_dir="$1/conf/ynh/mysql"
|
|
MYSQL_PKG="$(dpkg --list | sed -ne 's/^ii \(mariadb-server-[[:digit:].]\+\) .*$/\1/p')"
|
|
|
|
. /usr/share/yunohost/helpers
|
|
|
|
# ensure that mysql is running
|
|
service mysql status >/dev/null 2>&1 \
|
|
|| service mysql start
|
|
|
|
# retrieve current and new password
|
|
[ -f /etc/yunohost/mysql ] \
|
|
&& curr_pwd=$(sudo cat /etc/yunohost/mysql)
|
|
new_pwd=$(sudo cat "${backup_dir}/root_pwd" || sudo cat "${backup_dir}/mysql")
|
|
[ -z "$curr_pwd" ] && curr_pwd="yunohost"
|
|
[ -z "$new_pwd" ] && {
|
|
new_pwd=$(ynh_string_random 10)
|
|
}
|
|
|
|
# attempt to change it
|
|
sudo mysqladmin -s -u root -p"$curr_pwd" password "$new_pwd" || {
|
|
|
|
echo "It seems that you have already configured MySQL." \
|
|
"YunoHost needs to have a root access to MySQL to runs its" \
|
|
"applications, and is going to reset the MySQL root password." \
|
|
"You can find this new password in /etc/yunohost/mysql." >&2
|
|
|
|
# set new password with debconf
|
|
sudo debconf-set-selections << EOF
|
|
$MYSQL_PKG mysql-server/root_password password $new_pwd
|
|
$MYSQL_PKG mysql-server/root_password_again password $new_pwd
|
|
EOF
|
|
|
|
# reconfigure Debian package
|
|
sudo dpkg-reconfigure -freadline -u "$MYSQL_PKG" 2>&1
|
|
}
|
|
|
|
# store new root password
|
|
echo "$new_pwd" | sudo tee /etc/yunohost/mysql
|
|
sudo chmod 400 /etc/yunohost/mysql
|
|
|
|
# reload the grant tables
|
|
sudo mysqladmin -s -u root -p"$new_pwd" reload
|