Próbuję zainstalować MySQL na Ubuntu Natty bez pytania o hasło. Jednak wciąż pojawia się monit o hasło na pewnym etapie po głównej instalacji.
Ponadto, gdy wprowadzę hasło, które moim zdaniem powinno być moim hasłem (mymysqlpass), otrzymam powiadomienie o odmowie dostępu. Następnie, gdy skrypt zakończy działanie, mogę zalogować się do mysql bez hasła, tj. Mysql -uroot, co nie powinno się zdarzyć.
#!/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
źródło
źródło
debconf-set-selections
których tego unikniemy, odrzucone, ponieważ uważam, że pytanie i przykładowy kod były edytowane w dwóch różnych momentach, a teraz pytanie nie ma już sensu.Odpowiedzi:
Następujące polecenia ustawiają hasło root MySQL na
strangehat
podczas instalowaniamysql-server
pakietu.Zauważ, że tworzy to kopię tekstu hasła w postaci jawnego tekstu
/var/cache/debconf/passwords.dat
(która zwykle jest możliwa do odczytania tylko przez root, a hasło zostanie usunięte przez system zarządzania pakietami po pomyślnej instalacjimysql-server
pakietu).Pamiętaj, aby używać cudzysłowów, jeśli używasz go w Dockerfile.
Teraz możesz zainstalować,
mysql-server
a monit o hasło nie pojawia się:źródło
spowoduje to zainstalowanie mysql bez żadnej interwencji
źródło
Może to działać, aby nie wyświetlać monitu:
Jeśli chodzi o skrypt, spróbuję wpisać hasło w cudzysłowie:
źródło
Ta część wymaga przeformułowania, jeśli chcesz umieścić hasło między cudzysłowami: „mysql-server-5.1 mysql-server / root_password hasło„ $ mysql_pass ””
Do:
To zadziałało dla mnie (puste hasło roota):
źródło