Comment installer MySQL sans invite de mot de passe?

26

J'essaie d'installer MySQL sur Ubuntu Natty sans l'invite de mot de passe. Cependant, je continue à recevoir un mot de passe après l'installation principale.

En outre, lorsque je saisis ce que je pense être mon mot de passe (mymysqlpass), cela me donne un accès refusé. Ensuite, lorsque le script se termine, je peux me connecter à mysql sans mot de passe, c'est-à-dire mysql -uroot, ce qui ne devrait pas arriver.

#!/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 ]*\)=.*/= $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."
    
posée Chuck Ugwuh 14.11.2011 - 18:53
la source

4 réponses

46

Les commandes suivantes définissent le mot de passe root MySQL sur strangehat lorsque vous installez le package mysql-server .

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

Notez que cela crée une copie en texte clair de votre mot de passe dans /var/cache/debconf/passwords.dat (qui n'est normalement lisible que par root et le mot de passe sera supprimé par le système de gestion des packages après l'installation réussie du package mysql-server ). p>

Assurez-vous d'utiliser des guillemets si vous l'utilisez dans Dockerfile.

Vous pouvez maintenant installer mysql-server et l'invite de mot de passe n'apparaît pas:

sudo apt-get install mysql-server
    
réponse donnée Nimmermehr 16.11.2011 - 16:41
la source
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

cela installera mysql sans aucune intervention

    
réponse donnée lilbro1062000 17.12.2013 - 15:02
la source
7

Cela pourrait fonctionner pour ne pas vous demander:

export DEBIAN_FRONTEND=noninteractive

Quant au script, j'essaierais de mettre le mot de passe entre guillemets:

mysql_pass="mymysqlpass"
    
réponse donnée Gustav Bertram 14.11.2011 - 19:06
la source
1

Cette partie nécessite une reformulation si vous souhaitez placer le mot de passe entre guillemets: mysql-server-5.1 mysql-server / root_password password $ mysql_pass ''

Pour:

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

Cela a fonctionné pour moi (mot de passe root vide):

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
    
réponse donnée user219207 19.10.2016 - 08:01
la source

Lire d'autres questions sur les étiquettes