Ich versuche MySQL unter Ubuntu Natty ohne Passwortabfrage zu installieren. Nach der Hauptinstallation werde ich jedoch immer wieder zur Eingabe eines Kennworts aufgefordert.
Wenn ich mein Passwort (mymysqlpass) eingebe, wird mir der Zugriff verweigert. Wenn das Skript dann beendet wird, kann ich mich ohne Passwort bei mysql anmelden, dh mysql -uroot, was nicht passieren sollte.
#!/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."
software-installation
mysql
password
Chuck Ugwuh
quelle
quelle
debconf-set-selections
Eingabe eines Passworts aufgefordert", aber in seinem Beispielcode haben wir die 2 Zeilen , die damit anfangen, da ich glaube, dass die Frage und der Beispielcode zu zwei verschiedenen Zeitpunkten bearbeitet wurden Frage ergibt keinen Sinn mehr.Antworten:
Die folgenden Befehle setzen das MySQL-Root-Passwort auf,
strangehat
wenn Sie dasmysql-server
Paket installieren .Beachten Sie, dass hierdurch eine Klartextkopie Ihres Kennworts erstellt wird
/var/cache/debconf/passwords.dat
(das normalerweise nur von root gelesen werden kann und das vom Paketverwaltungssystem nach der erfolgreichen Installation desmysql-server
Pakets gelöscht wird ).Stellen Sie sicher, dass Sie Anführungszeichen verwenden, wenn Sie es in Dockerfile verwenden.
Jetzt können Sie installieren
mysql-server
und die Passwortabfrage wird nicht angezeigt:quelle
Dadurch wird MySQL ohne Intervention installiert
quelle
Dies könnte funktionieren, damit Sie nicht dazu aufgefordert werden:
Was das Skript angeht, würde ich versuchen, das Passwort in Anführungszeichen zu setzen:
quelle
Dieser Teil benötigt eine Umformulierung, wenn Sie das Passwort in Anführungszeichen setzen möchten: 'mysql-server-5.1 mysql-server / root_password password' $ mysql_pass ''
Zu:
Das hat bei mir geklappt (leeres root Passwort):
quelle