Skip to content

Commit

Permalink
MDEV-12834 mysql_secure_installation should ask about unix_socket aut…
Browse files Browse the repository at this point in the history
…hentication

recognize new unix_socket protected accounts, and don't
scare the user into setting the password for them
  • Loading branch information
vuvova committed Feb 12, 2019
1 parent b9f3f06 commit 4e4df7b
Showing 1 changed file with 13 additions and 10 deletions.
23 changes: 13 additions & 10 deletions scripts/mysql_secure_installation.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

config=".my.cnf.$$"
command=".mysql.$$"
output=".my.output.$$"

trap "interrupt" 1 2 3 6 15

Expand Down Expand Up @@ -216,7 +217,7 @@ prepare() {
do_query() {
echo "$1" >$command
#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 $?
}

Expand Down Expand Up @@ -268,15 +269,18 @@ get_root_password() {
echo
stty echo
if [ "x$password" = "x" ]; then
hadpass=0
emptypass=1
else
hadpass=1
emptypass=0
fi
rootpass=$password
make_config
do_query ""
do_query "show create user root@localhost"
status=$?
done
if grep -q unix_socket $output; then
emptypass=0
fi
echo "OK, successfully used password, moving on..."
echo
}
Expand Down Expand Up @@ -386,7 +390,7 @@ interrupt() {

cleanup() {
echo "Cleaning up..."
rm -f $config $command
rm -f $config $command $output
}

# Remove the files before exiting.
Expand All @@ -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
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 "you haven't set the root password yet, the password will be blank,"
echo "so you should just press enter here."
echo "password for the root user. If you've just installed MariaDB, and"
echo "haven't set the root password yet, you should just press enter here."
echo

get_root_password
Expand All @@ -422,10 +425,10 @@ echo "root user without the proper authorisation."
echo

while true ; do
if [ $hadpass -eq 0 ]; then
if [ $emptypass -eq 1 ]; then
echo $echo_n "Set root password? [Y/n] $echo_c"
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_n "Change the root password? [Y/n] $echo_c"
fi
Expand Down

0 comments on commit 4e4df7b

Please sign in to comment.