Secure MySQL installation non-interactively with a bash script
August 16, 2017
mysql_secure_installation ist interaktiv. Fuer Automatisierung gibt es zwei Wege: heredoc oder SQL-Kommandos.
Variante 1: heredoc (wenn moeglich)
code
PASS="your_password"
mysql_secure_installation << EOF
$PASS
y
1
n
y
y
y
y
EOF
Hinweis: Viele Tools lesen Passwoerter von /dev/tty, dann funktioniert heredoc nicht. In dem Fall expect nutzen.
Variante 2: SQL direkt
code
mysql -u root -p"$PASS" << EOF
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost','127.0.0.1','::1');
DELETE FROM mysql.user WHERE User='';
DELETE FROM mysql.db WHERE Db='test' OR Db='test_%';
FLUSH PRIVILEGES;
EOF
Sicherheit
- Passwort nicht in History speichern
read -sfuer Eingabe verwenden