Questo è un estratto dal mio script di installazione per i nuovi server. Dovresti riuscire a copiarlo parola per parola ad eccezione della password.
Avrete bisogno di eseguire questo utilizzando sudo se non sei già root.
#!/bin/bash
export DEBIAN_FRONTEND=noninteractive
apt-get -q -y install mysql-server
echo "Give mysql server time to start up before we try to set a password..."
sleep 5
mysql -uroot -e <<EOSQL "UPDATE mysql.user SET Password=PASSWORD('yourpasswordhere') WHERE User='root'; FLUSH PRIVILEGES;"
EOSQL
echo "Done setting mysql password."
altre risposte hanno utilizzato il -y che rende apt-get sempre rispondere sì a domande. Il -q nasconde alcuni indicatori di progresso in modo da poter inviare l'output a un log. Puoi anche usare -qq, che ti dà automaticamente un -y. Questo è nella pagina man di apt-get.
<<EOSQL
è una sintassi di heredoc bash per la leggibilità.
ho ottenuto la parte heredoc di questa soluzione da questo ragazzo: http://padwasabimasala.posterous.com/non-interactive-scripted-mysql-install-on-ubu
La cosa da ricordare con l'heredoc è che spazio prima della stringa di chiusura rompe. Quindi non indentare quella riga. Ecco una pagina sulla sintassi di heredoc: http://tldp.org/LDP/abs/html/here-docs.html
ho provato l'approccio 'expect', ma continuò a correre in questione citando sottile S. Il trucco "DEBIAN_FRONTEND = noninteractive' era esattamente quello che stavo cercando. Seguilo con una 'mysqladmin -u root password YOUR_DB_PASSWORD' e sei a casa in un batter d'occhio. –
+1 per qualcosa che in realtà funziona su insatll pulita di Ubuntu 12.04 – Automatico