TASIOMIND.DEV — OPERATIONAL▸▸▸FULL STACK DEVELOPER @ GWQ SERVICEPLUS AG▸▸▸FOUNDER — K8SGPT.AI▸▸▸OPEN SOURCE: ACTIVE▸▸▸DISTRIBUTED SYSTEMS / KUBERNETES / AI▸▸▸RUST + GO + PYTHON▸▸▸FIELD TESTED / STATUS — NOMINAL▸▸▸LOCATION: EUROPE/BERLIN▸▸▸TASIOMIND.DEV — OPERATIONAL▸▸▸FULL STACK DEVELOPER @ GWQ SERVICEPLUS AG▸▸▸FOUNDER — K8SGPT.AI▸▸▸OPEN SOURCE: ACTIVE▸▸▸DISTRIBUTED SYSTEMS / KUBERNETES / AI▸▸▸RUST + GO + PYTHON▸▸▸FIELD TESTED / STATUS — NOMINAL▸▸▸LOCATION: EUROPE/BERLIN▸▸▸

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 -s fuer Eingabe verwenden