J'essaie d'installer MySQL sur Ubuntu Natty sans l'invite du mot de passe. Cependant, on me demande toujours un mot de passe après l'installation principale.
De plus, lorsque je saisis ce que je pense être mon mot de passe (mymysqlpass), cela me donne un avis d’accès refusé. Ensuite, lorsque le script se termine, je peux me connecter à mysql sans mot de passe, mysql -uroot, ce qui ne devrait pas se produire.
#!/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."
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 ceci crée une copie en clair de votre mot de passe dans /var/cache/debconf/passwords.dat
(qui est normalement uniquement lisible par root et le mot de passe sera supprimé par le système de gestion de paquets après l'installation réussie du paquet mysql-server
).
Assurez-vous d'utiliser des guillemets si vous l'utilisez dans Dockerfile.
Maintenant, vous pouvez installer mysql-server
et l'invite de mot de passe n'apparaît pas:
Sudo apt-get install mysql-server
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
Cela pourrait fonctionner pour que cela ne vous invite pas:
export DEBIAN_FRONTEND=noninteractive
En ce qui concerne le script, je voudrais essayer de mettre le mot de passe entre guillemets:
mysql_pass="mymysqlpass"
Cette partie nécessite une reformulation si vous souhaitez mettre le mot de passe entre guillemets: 'mysql-server-5.1 mysql-server/mot_de_passe_racine mot_de_passe' $ mysql_pass ''
À:
"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