Я пытаюсь установить MySQL на Ubuntu Natty без запроса пароля. Тем не менее, я получаю запрос на ввод пароля на некотором этапе после основной установки.
Кроме того, когда я ввожу то, что, по моему мнению, должно быть моим паролем (mymysqlpass), это дает мне уведомление об отказе в доступе. Затем, когда сценарий завершается, я могу войти в mysql без пароля, т.е. mysql -uroot, чего не должно быть.
#!/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
Чак Угвух
источник
источник
debconf-set-selections
которые будут исключены, поскольку я считаю, что вопрос и пример кода были отредактированы в два разных момента времени, и теперь вопрос больше не имеет смысла.Ответы:
Следующие команды устанавливают пароль root для MySQL,
strangehat
когда вы устанавливаетеmysql-server
пакет.Обратите внимание, что при этом создается копия вашего пароля в незашифрованном виде
/var/cache/debconf/passwords.dat
(которая обычно может быть прочитана только пользователем root, и пароль будет удален системой управления пакетами после успешной установкиmysql-server
пакета).Обязательно используйте кавычки, если используете его в Dockerfile.
Теперь вы можете установить,
mysql-server
и запрос пароля не появится:источник
это установит MySQL без какого-либо вмешательства
источник
Это может сработать, чтобы не подсказать вам:
Что касается скрипта, я бы попробовал поместить пароль в кавычки:
источник
Эта часть нуждается в перефразировке, если вы хотите поместить пароль в кавычки: 'mysql-server-5.1 mysql-server / root_password пароль' $ mysql_pass ''
Для того, чтобы:
Это сработало для меня (пустой пароль root):
источник