mysql_secure_installation automatisation (FR)

Si vous souhaitez automatiser les réponses à la commande mysql_secure_installation, voici un petit script.

On part ici du principe qu’on garde le plugin par défaut, unix_socket, qu’on ne définit pas de mot de passe pour root-DB (vide par défaut) et donc qu’il sera le même que pour root-system :

#!/bin/bash

dpkg -s expect 2> /dev/null
if [ $? == 0 ] ; then :
else apt-get install -y expect
fi

MYSQL_ROOT_PASSWORD=""

SECURE_MYSQL=$(expect -c "

set timeout 10
spawn mysql_secure_installation

expect \"Enter current password for root (enter for none):\"
send \"${MYSQL_ROOT_PASSWORD}\r\"

expect \"Change the root password?\"
send \"n\r\"

expect \"Remove anonymous users?\"
send \"y\r\"

expect \"Disallow root login remotely?\"
send \"y\r\"

expect \"Remove test database and access to it?\"
send \"y\r\"

expect \"Reload privilege tables now?\"
send \"y\r\"

expect EOF
")

echo ${SECURE_MYSQL}