Estou tentando instalar o MySQL no Ubuntu Natty sem o prompt de senha. No entanto, continuo solicitando uma senha em algum momento após a instalação principal.
Além disso, quando digito o que acredito ser minha senha (mymysqlpass), ele recebe um aviso de acesso negado. Então, quando o script terminar, eu posso entrar no mysql sem uma senha, ou seja, mysql -uroot, o que não deve acontecer.
#!/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
fonte
fonte
debconf-set-selections
que começarão a evitar isso, com voto negativo porque acredito que a pergunta e o código de amostra foram editados em dois momentos diferentes e agora o pergunta não faz mais sentido.Respostas:
Os seguintes comandos definem a senha raiz do MySQL para
strangehat
quando você instala omysql-server
pacote.Observe que isso cria uma cópia em texto não criptografado da sua senha
/var/cache/debconf/passwords.dat
(que normalmente é legível somente pelo root e a senha será excluída pelo sistema de gerenciamento de pacotes após a instalação bem-sucedida domysql-server
pacote).Certifique-se de usar aspas se estiver usando no Dockerfile.
Agora você pode instalar
mysql-server
e o prompt de senha não aparece:fonte
isso instalará o mysql sem nenhuma intervenção
fonte
Isso pode funcionar para que não seja solicitado:
Quanto ao script, eu tentaria colocar a senha entre aspas:
fonte
Esta parte precisa ser reformulada se você quiser colocar a senha entre aspas: 'mysql-server-5.1 mysql-server / root_password password' $ mysql_pass ''
Para:
Isso funcionou para mim (senha raiz vazia):
fonte