Commit 4e4df7b4 authored by Sergei Golubchik's avatar Sergei Golubchik

MDEV-12834 mysql_secure_installation should ask about unix_socket authentication

recognize new unix_socket protected accounts, and don't
scare the user into setting the password for them
parent b9f3f068
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
config=".my.cnf.$$" config=".my.cnf.$$"
command=".mysql.$$" command=".mysql.$$"
output=".my.output.$$"
trap "interrupt" 1 2 3 6 15 trap "interrupt" 1 2 3 6 15
...@@ -216,7 +217,7 @@ prepare() { ...@@ -216,7 +217,7 @@ prepare() {
do_query() { do_query() {
echo "$1" >$command echo "$1" >$command
#sed 's,^,> ,' < $command # Debugging #sed 's,^,> ,' < $command # Debugging
$mysql_command --defaults-file=$config $defaults_extra_file $no_defaults $args <$command $mysql_command --defaults-file=$config $defaults_extra_file $no_defaults $args <$command >$output
return $? return $?
} }
...@@ -268,15 +269,18 @@ get_root_password() { ...@@ -268,15 +269,18 @@ get_root_password() {
echo echo
stty echo stty echo
if [ "x$password" = "x" ]; then if [ "x$password" = "x" ]; then
hadpass=0 emptypass=1
else else
hadpass=1 emptypass=0
fi fi
rootpass=$password rootpass=$password
make_config make_config
do_query "" do_query "show create user root@localhost"
status=$? status=$?
done done
if grep -q unix_socket $output; then
emptypass=0
fi
echo "OK, successfully used password, moving on..." echo "OK, successfully used password, moving on..."
echo echo
} }
...@@ -386,7 +390,7 @@ interrupt() { ...@@ -386,7 +390,7 @@ interrupt() {
cleanup() { cleanup() {
echo "Cleaning up..." echo "Cleaning up..."
rm -f $config $command rm -f $config $command $output
} }
# Remove the files before exiting. # Remove the files before exiting.
...@@ -405,9 +409,8 @@ echo "NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB" ...@@ -405,9 +409,8 @@ echo "NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB"
echo " SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!" echo " SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!"
echo echo
echo "In order to log into MariaDB to secure it, we'll need the current" echo "In order to log into MariaDB to secure it, we'll need the current"
echo "password for the root user. If you've just installed MariaDB, and" echo "password for the root user. If you've just installed MariaDB, and"
echo "you haven't set the root password yet, the password will be blank," echo "haven't set the root password yet, you should just press enter here."
echo "so you should just press enter here."
echo echo
get_root_password get_root_password
...@@ -422,10 +425,10 @@ echo "root user without the proper authorisation." ...@@ -422,10 +425,10 @@ echo "root user without the proper authorisation."
echo echo
while true ; do while true ; do
if [ $hadpass -eq 0 ]; then if [ $emptypass -eq 1 ]; then
echo $echo_n "Set root password? [Y/n] $echo_c" echo $echo_n "Set root password? [Y/n] $echo_c"
else else
echo "You already have a root password set, so you can safely answer 'n'." echo "You already have your root account protected, so you can safely answer 'n'."
echo echo
echo $echo_n "Change the root password? [Y/n] $echo_c" echo $echo_n "Change the root password? [Y/n] $echo_c"
fi fi
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment