Come posso installare MySQL senza una richiesta di password?


26

Sto cercando di installare MySQL su Ubuntu Natty senza la richiesta della password. Tuttavia, dopo l'installazione principale mi viene richiesta una password.

Inoltre, quando inserisco quella che credo dovrebbe essere la mia password (mymysqlpass), mi dà un avviso di accesso negato. Quindi, quando lo script termina, posso accedere a mysql senza una password, ad esempio mysql -uroot, che non dovrebbe accadere.

#!/bin/bash
#This script installs mysql (latest build)
#Install MYSQL Server
mysql_pass=mymysqlpass
export DEBIAN_FRONTEND=noninteractive 
debconf-set-selections <<< 'mysql-server-5.1 mysql-server/root_password password '$mysql_pass''
debconf-set-selections <<< 'mysql-server-5.1 mysql-server/root_password_again password '$mysql_pass''
apt-get -y install mysql-server
#Configure Password and Settings for Remote Access
cp /etc/mysql/my.cnf /etc/mysql/my.bak.cnf
ip=`ifconfig eth0 | grep "inet addr"| cut -d ":" -f2 | cut -d " " -f1` ; sed -i "s/\(bind-address[\t ]*\)=.*/\1= $ip/" /etc/mysql/my.cnf
mysql -uroot -e "UPDATE mysql.user SET Password=PASSWORD('"$mysql_pass"') WHERE User='root'; FLUSH PRIVILEGES;"
sleep 10
mysql -uroot -p$mysql_pass -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '"$mysql_pass"'; FLUSH PRIVILEGES;"
#Restart
service mysql restart
echo "MySQL Installation and Configuration is Complete."

Sarei molto pericoloso! perché hai bisogno di questo?
Pascal Fares,

6
Quando esegui il provisioning di macchine virtuali, per prima cosa. Se sei davvero preoccupato, sono sicuro che potresti fare qualcosa come creare una password crittograficamente sicura casuale e fare in modo che lo script crei un processo cron per dirti la password in un momento in cui c'è poco traffico e il sistema deve essere intercettato tempo. Assicurati solo di guardare il computer durante i 5 secondi che assegni prima che scompaia.
trysis

L'OP dice "Continuo a farmi chiedere una password" ma nel suo codice di esempio abbiamo le 2 righe che iniziano con le debconf-set-selectionsquali eviteremo ciò, ridimensionate perché credo che la domanda e il codice di esempio siano stati modificati in due diversi punti nel tempo e ora il la domanda non ha più senso.
Mastazi

Risposte:


46

I seguenti comandi impostano la password di root di MySQL su strangehatquando si installa il mysql-serverpacchetto.

echo "mysql-server mysql-server/root_password password strangehat" | sudo debconf-set-selections
echo "mysql-server mysql-server/root_password_again password strangehat" | sudo debconf-set-selections

Si noti che ciò crea una copia in chiaro della password in /var/cache/debconf/passwords.dat(che è normalmente leggibile solo da root e la password verrà eliminata dal sistema di gestione dei pacchetti dopo una corretta installazione del mysql-serverpacchetto).

Assicurati di usare le virgolette se lo usi in Dockerfile.

Ora puoi installare mysql-servere la richiesta della password non appare:

sudo apt-get install mysql-server

11
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password my_password'
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password my_password'
sudo apt-get -y install mysql-server

questo installerà mysql senza alcun intervento


7

Questo potrebbe funzionare per evitare che ti chieda:

export DEBIAN_FRONTEND=noninteractive

Per quanto riguarda lo script, proverei a mettere la password tra virgolette:

mysql_pass="mymysqlpass"

1

Questa parte deve essere riformulata se si desidera inserire la password tra virgolette: 'mysql-server-5.1 mysql-server / root_password password' $ mysql_pass ''

A:

"mysql-server-5.1 mysql-server/root_password password '$mysql_pass'"

Questo ha funzionato per me (password di root vuota):

sudo debconf-set-selections <<< "mysql-server-5.5 mysql-server/root_password password ''"
sudo debconf-set-selections <<< "mysql-server-5.5 mysql-server/root_password_again password ''"
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password ''"
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password ''"
export DEBIAN_FRONTEND=noninteractive
sudo -E apt-get install -y -q mysql-server libmysqlclient-dev
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.