Как я устанавливаю MySQL без подсказки пароля?

Я пытаюсь установить MySQL на Ubuntu, Аккуратной без подсказки пароля. Однако я продолжаю предлагаться пароль на некотором этапе после основной установки.

Кроме того, когда я действительно ввожу то, чему я верю, должен быть мой пароль (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."
26
задан 6 July 2017 в 21:34

4 ответа

Следующие команды устанавливают пароль root MySQL на strangehat когда Вы устанавливаете 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

Обратите внимание, что это создает копию открытого текста Вашего пароля в /var/cache/debconf/passwords.dat (который обычно только читаем корнем, и пароль будет удален системой управления пакета после успешной установки mysql-server пакет).

Удостоверьтесь, что использовали кавычки при использовании его в Dockerfile.

Теперь можно установить mysql-server и подсказка пароля не появляется:

sudo apt-get install mysql-server
46
ответ дан 23 November 2019 в 01:07

Это могло бы работать, чтобы заставить его не предложить Вам:

export DEBIAN_FRONTEND=noninteractive

Что касается сценария, я попытался бы поместить пароль в кавычки:

mysql_pass="mymysqlpass"
7
ответ дан 23 November 2019 в 01:07
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

это установит mysql без любого вмешательства

11
ответ дан 23 November 2019 в 01:07

Этой части нужно перефразирование, если Вы хотите поместить пароль между кавычками: 'mysql-server-5.1 mysql-server/root_password пароль '$mysql_pass''

Кому:

"mysql-server-5.1 mysql-server/root_password password '$mysql_pass'"

Это работало на меня (пустой пароль root):

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
1
ответ дан 23 November 2019 в 01:07

Другие вопросы по тегам:

Похожие вопросы: